Cloudflare Workers
V8 isolates on 300+ PoPs. Sub-millisecond cold starts, lowest cost at scale, the edge default.
VISIT CLOUDFLARE WORKERSKey takeaway: Pick Workers when latency and cost per request are the two numbers you are optimising and you can write against web platform APIs rather than Node ones. It is the cheapest and widest-reaching of the V8 isolate platforms, and the right default over Vercel Edge unless Next.js integration is what you are actually buying. The constraint worth accepting up front: this is a web-standards runtime with Node compatibility bolted alongside, not a Node host.
Quick facts
- CategoryV8 isolate
- LanguageV8 / TS / WASM
- PricingFreemium
- LicenseProprietary
- Created2017
- GitHub starsclosed
- Cold startinstant
- PoPs300+
- Node-compatYes
What it is
Cloudflare Workers runs JavaScript / TypeScript / WASM in V8 isolates across Cloudflare's 300+ PoPs. Sub-millisecond cold starts (no cold start, really, isolates are pre-warmed). Free tier of 100k requests/day, generous paid tiers. Tight integration with D1, R2, KV, Durable Objects, Queues. The default edge runtime in 2026.
Best for
- Edge-rendered apps that need sub-50ms response globally
- API gateways and middleware (auth, A/B routing, header rewriting)
- Cost-sensitive workloads, Workers pricing is meaningfully kinder than Lambda
- Apps that pair Workers with D1 / R2 / KV for the full Cloudflare stack
When not to pick it
Skip Workers if you need full Node API compatibility, Node compat works but is the workaround, not the native path. Skip if your team values single-vendor avoidance and Cloudflare lock-in matters.
My take
Cloudflare Workers is the right default for edge runtime in 2026. The performance-per-dollar is unmatched. The runtime constraint (V8 isolates, not full Node) is a real but worthwhile trade-off.
Isolates, and the constraints that come with them
A Worker does not boot a container. Cloudflare keeps V8 isolates warm and drops your script into one, so the thing everyone else calls a cold start mostly stops existing. That single choice is what separates Workers from Lambda@Edge and Fly.io Machines, and it is also the source of every constraint you will hit. There is no filesystem. Long-lived TCP connections are the exception rather than the norm. CPU time is budgeted per request rather than wall-clock time, so a slow origin does not bill you but a tight loop does. Node compatibility covers a large slice of the built-ins and plenty of pure-JavaScript npm packages, but it is a compatibility layer, not the native path. Middleware, API routing, and server rendering fit comfortably. Anything that shells out, holds a socket open for minutes, or pulls in a native module does not. Write to the web platform first and treat Node compatibility as the escape hatch.
Bindings are the productivity win and the lock-in
D1, R2, KV, Durable Objects, and Queues attach to a Worker as bindings, injected objects rather than network clients you have to authenticate against. It is the most pleasant data access on any edge platform, and it is also where the lock-in lives, because those are Cloudflare APIs with no direct equivalent elsewhere. Keep them behind a thin data module and the rest of your code stays portable. That matters, because the handler itself is genuinely portable: Workers, Vercel Edge, and Deno Deploy are all V8 with fetch-style handlers, so request-handling logic moves between them with modest effort. The storage layer is the part that does not move. Pricing is usage-based on requests and CPU time with a free tier, there is no capacity to provision, and the curve stays kinder than Lambda at volume. Durable Objects in particular have no clean counterpart, so weigh that before you build coordination logic on top of them.
Frequently asked questions
Is Cloudflare Workers free?
There is a free tier that comfortably covers hobby projects, personal sites, and small APIs, with usage-based paid plans above it billed on requests and CPU time. You never provision capacity, so an idle project costs effectively nothing. Cost scales with traffic rather than with instances, which is why Workers usually undercuts Lambda@Edge at the same request volume.
Cloudflare Workers or Vercel Edge?
Workers for price, network reach, and the storage bindings. Vercel Edge if you are building Next.js and want middleware, streaming, previews, and image handling wired together on one bill. Both run V8 isolates, so raw handler code ports between them without much friction. If you are not already committed to Vercel's platform, Workers is the cheaper default.
Does Cloudflare Workers support Node modules?
Partly. There is a Node compatibility layer covering many built-ins, and a lot of pure-JavaScript npm packages work unchanged. Anything with native bindings, filesystem access, or long-lived raw TCP assumptions will not. Audit your dependency tree before committing. If full Node is non-negotiable, Fly.io Machines or Lambda@Edge run the real thing instead.
Links
Compare Cloudflare Workers side-by-side
Similar tools you should also consider
If Cloudflare Workers is your pick, the next conversation is short
The 30-min call is where your edge runtime choice becomes a real architecture, an integration plan with your data layer + auth + build pipeline, and a price range you can take to your stakeholders.