Alternatives / Cloudflare Browser Rendering

A Cloudflare Browser Rendering alternative without the Workers tax

CDP from any host, any language, any cloud. No Workers Paid floor. Live preview included.

Cloudflare Browser Rendering is a great fit if you're already deep in Workers. Cheapest raw rate in the category and great cold starts on the edge. This page is for the other case: you want a Chromium endpoint from outside Cloudflare, without adopting Workers.

Get API key

Free tier · $0.15/hour after · No credit card

Side by side

Bug0 BrowsersCloudflare Browser Rendering
Monthly minimum$0$0 free / $5 Workers Paid
Effective hourly rate$0.15$0.09
Billing unitPer minutePer hour (Workers)
Free tier, no credit cardYesYes (Workers account)
Standard CDP URLYesYes
Live previewnoVNC on every sessionNot documented
Self-host optionNoNo
Stealth / captcha built inNoNot documented
Proxies built inNoCloudflare network

Pricing accurate as of April 2026. We update as Cloudflare Browser Rendering changes theirs.

Migrate when you leave Workers

If you've been driving Cloudflare Browser Rendering inside a Worker, your Bug0 code lives in any Node/TS process. The Puppeteer/Playwright call shape is the same.

Cloudflare Worker

import puppeteer from "@cloudflare/puppeteer";

export default {
  async fetch(req, env) {
    const browser = await puppeteer.launch(env.MYBROWSER);
    const page = await browser.newPage();
    await page.goto("https://example.com");
    return new Response(await page.content());
  },
};

Bug0 (anywhere)

import { Bug0 } from "@bug0/sdk";
import { chromium } from "playwright";

const bug0 = new Bug0({ apiKey: process.env.BUG0_API_KEY });
const { cdpUrl } = await bug0.createBrowser();
const browser = await chromium.connectOverCDP(cdpUrl);
const page = browser.contexts()[0].pages()[0];

Worker bindings (env.MYBROWSER) are gone, replaced by an HTTP API call. Same Playwright/Puppeteer surface afterward.

Where Cloudflare Browser Rendering wins

Where Bug0 wins

  • No platform lock-in. Connect from any host, any language, any cloud.
  • Live noVNC preview is included, not absent from the product surface.
  • No Workers Paid floor to cross before usage-based pricing kicks in.

Pricing math

Cloudflare is $0.09/hr, but only after $5/mo Workers Paid (10 hours included) plus $2 per additional averaged browser. Bug0 is $0.15/hr with no floor. Crossover for a single-browser workload is ~68 hours/month: below that, Bug0's no-minimum side is cheaper; above it, Cloudflare's lower per-hour rate wins, if you're already on Workers.

See the full alternatives table →

Frequently asked questions

Should I just use Cloudflare if I'm already on Workers?

Probably yes. The integration is tight and the raw rate is the lowest in the category. Pick Bug0 when you're not on Workers, or when you want to call from outside Cloudflare's edge.

Does Bug0 give me a CDP endpoint I can hit from anywhere?

Yes. wss:// URL, no Cloudflare account required, no Worker to deploy.

What about session preview?

Bug0 ships noVNC live preview on every session. Cloudflare's docs don't surface a live viewer.

Can I run Bug0 from a Cloudflare Worker?

Yes. Workers can fetch() the Bug0 API. The websocket connect happens from your code, not Cloudflare's. If you want browser bindings inside Workers, stay on Cloudflare.

Pricing comparison?

Cloudflare: $5/mo Workers Paid floor (10 hrs included) + $0.09/hr + $2 per additional averaged browser. Bug0: $0.15/hr, no floor. For a single-browser workload, crossover is around 68 hours/month. Below that, Bug0 is cheaper than the equivalent Cloudflare bill.

Free tier?

10 browser-minutes free, no credit card. Cloudflare gives 10 minutes per day on the free Workers tier.