What Is Cloudflare Workers? A Complete Guide for 2026
Cloudflare Workers explained: how V8 isolates kill cold starts, why teams flee AWS and Vercel for CPU-based billing, and the real trade-offs. Find out more.

Cloudflare Workers is a serverless platform that runs your JavaScript, TypeScript, Python, or WebAssembly code inside lightweight V8 isolates across Cloudflare's global network, not inside containers in one region. Teams are switching to it in 2026 for two practical reasons. The first is billing: Workers charges for CPU time rather than wall-clock time, so functions that spend most of their life waiting on network calls get dramatically cheaper. The second is performance: isolates start in milliseconds, so cold starts largely disappear.
The migration stories on X are real, and so are the caveats. Database connections, framework adapters, bundle limits, and a concurrency model that differs from AWS Lambda trip up teams that assume Workers is "Lambda, but cheaper." This guide covers how the platform works, why the migration wave is happening, and how to tell whether your workload belongs on it.
The 30-second answer
- What it is: Serverless functions running in V8 isolates (the same sandbox technology Chrome uses for browser tabs), deployed to Cloudflare's edge network.
- Why teams switch: CPU-time billing, near-zero cold starts, and predictable costs. Published migrations report cloud-cost cuts above 80%.[9]
- What bites: Centralized Postgres connections, Next.js needing an adapter, 3MB/10MB bundle limits, and isolates that handle many requests at once.
- Best fit: Global APIs, static and JAMstack sites, cost-sensitive indie projects. Plan carefully for relational-heavy or long CPU-bound workloads.
The Billing Moment: Why Teams Are Suddenly Leaving Lambda and Vercel
Most migration threads start with a bill, not an architecture diagram. The difference comes down to what you pay for. AWS Lambda bills wall-clock duration: every millisecond your function exists, including time spent waiting on an API response or a database query. Workers bills CPU time: only the milliseconds your code is actually computing.
For I/O-heavy code, the gap is enormous. Max Rozen's example went viral because the arithmetic is so stark:
Moved a function from AWS Lambda to Cloudflare Workers this morning.
It's a bunch of fetch calls + some DB queries, does about 27 seconds runtime on average.
On AWS, I'd get billed for the full 27000ms.
On Cloudflare, I get billed for CPU time: 300ms.
A function that spends 27 seconds waiting on fetch calls and DB queries burns only about 300ms of CPU. That is roughly a 90x difference in billable time.
The same logic scales up to companies. Baselime, the observability startup, documented its move from AWS to Cloudflare. It reported a simpler architecture, better performance, and over 80% lower cloud costs.[9] DevCycle's story is a useful counterweight: Workers scaled so well that it overwhelmed the rest of their infrastructure, and they ended up rebuilding more of the stack on Workers itself.[8]
For indie developers, the driver is often less about savings and more about fear of the surprise bill:
Vercel paused hauntboard two days ago.
1.2M ISR reads and 10.2GB origin transfer on the free tier. their solution: "upgrade to resume service".
Instead of paying a monthly fee for an indie side project, I spent 1 hour migrating the entire Next.js 16 app to Cloudflare Workers.
result:
• fast global edge delivery
• zero risk of surprise bandwidth bills
• $0/month
https://t.co/1kpWjuyufz is back live with 18 launches.
Don't let hosting platforms scare you into paying before you have revenue.
This sentiment recurs across the conversation. Developers don't want a platform that pauses their site or forces an upgrade before the project earns anything. Workers' free tier and flat $5 paid plan make the cost ceiling legible, and for side projects that predictability is often worth more than any benchmark.
Cloud Computing Without Containers: How V8 Isolates Actually Work
To understand why Workers is cheap and fast, you need to understand the isolate.
A traditional serverless function runs in a container or micro-VM: a packaged operating-system environment with its own runtime, booted on demand. Booting that environment is what causes a "cold start," the delay of hundreds of milliseconds or more when a function hasn't run recently.
A V8 isolate is much lighter. V8 is the JavaScript engine inside Chrome and Node.js, and an isolate is a self-contained instance of that engine with its own memory heap. Cloudflare's founding explanation of the architecture describes running many isolates inside a single process. Each isolate is walled off from the others, and none of them needs its own OS or runtime boot.[4] Because the runtime is already warm, a new isolate spins up in milliseconds and uses a fraction of a container's memory.[4][1]
Unlike traditional serverless functions, Cloudflare Workers run on V8 isolates, not containers. This eliminates the cold start problem and allows for instant spin-up of new isolates in single-digit milliseconds. No more workarounds!
View on XThe obvious question is security: is putting many customers' code in one process safe? Cloudflare's security model documentation describes layered defenses. These include the V8 sandbox, a hardened runtime, process-level isolation for untrusted code, and Spectre-specific mitigations, such as restricting high-precision timers that side-channel attacks depend on.[2] A later hardening post goes further, describing the use of hardware memory protection keys and the grouping of isolates so that a single V8 bug is harder to escalate.[3]
The economics follow directly from this design. Packing thousands of tenants into one process makes idle capacity nearly free for Cloudflare. That efficiency is what makes CPU-time billing viable as a business. The cost advantage isn't a promotional discount; it comes from the architecture itself.
The isolate model also extends beyond JavaScript. Cloudflare's 2025 Python Workers update describes fast cold starts for Python, package support, and a uv-first workflow.[15]
The Multiplexing Gotcha: Workers Are Not Lambda Functions
This is the misunderstanding that surprises experienced serverless developers. Lambda gives each execution environment one request at a time. If ten requests arrive at once, Lambda scales out to ten environments. Your code can treat global state as effectively private to the current request.
Workers doesn't work that way. In early 2026, dax (of SST and OpenCode) posted what many people were learning the hard way:
something i didn't fully understand till today - a cloudflare worker isolate will handle multiple reqs at a time
this is different from how aws lambda works where it won't work on the next req until the previous one is done
this means it's a lot easier to blow up memory
The debate that followed sharpened the mental model. Michael Arnaldi of Effect put it bluntly:
That's not true, workers multiplex requests, they are much more similar to a long running node app vs a lambda function
View on XCloudflare's own docs support this framing. A Worker's isolate persists between requests and can serve multiple requests concurrently, so global scope is shared.[1][5]
In practice, this changes how you write code:
- Module-level caches grow across requests. A
Mapyou populate "per request" at global scope becomes a memory leak under load. - Concurrent large payloads stack up. Ten in-flight requests that each buffer a 20MB response hit the isolate's memory limit together, not separately.
- Request-scoped data must stay request-scoped. Putting user context in a global variable risks leaking it across concurrent requests.
When you port Lambda code, audit every top-level variable. Ask yourself: what happens if fifty requests touch this at the same moment? Treat the Worker like a long-running Node server with tight memory, not like a disposable function.
'Serverless' and 'Edge', Decoded Without the Marketing
Much of the confusion around Workers is a vocabulary problem. dax's thread from 2023 remains the cleanest taxonomy in circulation:
i'm going to explain this without any marketing terms
taking the time to write this out so please read it carefully before you reply trying to disagree
we have a primitive called a serverless function
this is a reasonable name, it is a function that can execute without thinking about what server it runs on
we can pull out two properties of a serverless function - where it's running and what it's running
for the where it could be in a regional datacenter (us-east-1) or it can be at edge (closer to users) or maybe another location we haven't thought of
for the what, it can be things like nodejs, deno, golang, java, etc
so we can look at products that serve these combinations
nodejs + regional (AWS Lambda configured with nodejs)
nodejs + edge (AWS Lambda@Edge)
v8 isolate + edge (Cloudflare Worker)
v8 isolate + regional (Cloudflare Worker pinned to region)
golang + regional (Lambda configured with al2)
deno + edge (deno deploy)
the root issue here is vercel taking the non-marketing term edge - which already refers to the where - and using it to describe the what (specifically in their product) creating immediate confusion
and the second part is now additionally using the phrase "serverless function" not as an umbrella term for everything, but for one specific combination of what+where
His framework uses two independent axes:
- Where the code runs: a regional datacenter (like
us-east-1) or the edge (many locations close to users). - What runs it: Node.js, a V8 isolate, Go, Deno, and so on.
On that grid, Lambda is Node + regional, Lambda@Edge is Node + edge, and a Cloudflare Worker is V8 isolate + edge by default. Workers can also be pinned closer to a region when needed. Cloudflare's own concepts docs frame Workers the same way: code deployed across the network and executed wherever a request lands.[5]
Fastly's Compute@Edge occupies a neighboring square: WebAssembly + edge. Cindy Sridharan's early sketch comparing the three platforms' execution models is still a helpful visual:
Very first stab at a comparison between AWS lambda, Cloudflare Workers and Fastly’s new wasm based runtime.
I started with the AWS lambda sketch and then adopted the same convention for the others too.
Counting on the internet to call me out if any of this is inaccurate 😏
The takeaway: "edge" describes location, not a runtime, and it is a spectrum rather than a binary. That matters most for your database, which is almost certainly not at the edge.
The Edge Database Problem — and Why It Nearly Broke Everyone's Migration
This is the hurdle that sinks the most migrations. Traditional apps keep a small pool of long-lived TCP connections to Postgres. Workers inverts that pattern: potentially thousands of short-lived isolates, spread worldwide, each wanting its own connection.
Spinning up thousands of stateless V8 edge isolates against a centralized Postgres instance over TCP will exhaust your connection pool in seconds. Here is how we moved to Cloudflare D1 and SQLite bindings for sub-5ms edge queries. Details below 👇
View on XTwo things go wrong at once. Each isolate opening a fresh connection exhausts the database's connection limit. And each query from an edge location makes a round trip to the one region where the database lives, which erases the latency advantage you moved to the edge for.
Practitioners are converging on three answers:
1. Move data to the edge with D1. Cloudflare's SQLite-based database is accessed through bindings, meaning direct runtime integrations rather than TCP connections. CodingCat.dev reports sub-5ms queries after switching. Baselime's migration likewise leaned on Cloudflare-native storage to simplify its architecture.[9] The tradeoff: you're adopting SQLite semantics and a Cloudflare-specific database.
2. Use a database built for serverless connections. Some teams keep a managed relational database but change providers:
Average latency in @Cloudflare workers from our previous AWS DB, to @PlanetScale
From 255ms, to 10ms
(connection latency is also reduced, from 151 to 3.7ms)
Combined with @zero__ms, it's chef's kiss
A drop from 255ms to 10ms suggests that much of the original latency came from connection setup, not from the queries themselves.
3. Keep Postgres, but pool in front of it. Teams locked into an existing database can use Cloudflare's Hyperdrive or an external pooler. Workers then reuse warm connections instead of opening new ones.
Decision rule: if your data model is simple and read-heavy, D1 is the shortest path. If you need full Postgres features, put pooling in front of it before you flip traffic.
Next.js, WordPress, and the Adapter Reality Check
The second most common surprise: your framework may not "just run." Nikzad's 2026 thread is the most precise explanation in the conversation:
I moved my Next.js app to @Cloudflare. Here's what you need to know:
Next.js doesn't run on Cloudflare as it is. Next.js’s own build produces a folder of files for a Node.js server to read from disk, and Cloudflare offers neither a disk nor a full Node.js runtime, so an adapter has to turn that output into a bundle that Cloudflare’s runtime can run.
Cloudflare Workers free and paid plans have two limits for the bundle size: 3MB and 10MB
There are two main adaptors: OpenNext and Vinext.
- OpenNext keeps all of Next.js, but even built with webpack instead of Turbopack, my app only fit the Cloudflare paid plan.
- Vinext, Cloudflare's rewrite of it, bundles it in a smaller size, but it lacks some of the new NextJS features as of today (such as partial pre-rendering).
I chose Vinext so the bundle size limit doesn't bite me in the future. Hopefully Cloudflare keeps up with Next.js updates in the future. Check your bundle size first before choosing your stack!
Another thing to note is that Next.js keeps a cache of the pages it has already built. On Vercel, that cache came with the host; on Cloudflare, it lives in an R2 storage bucket. The app also stops running on Node.js, so image resizing moves to Cloudflare Images.
The root cause is structural. A Next.js build expects a Node.js server reading files from disk, and Workers provides neither a disk nor a full Node runtime. An adapter has to translate the output:
- OpenNext preserves the full Next.js feature set but produces larger bundles. Nikzad's app only fit under the paid plan's 10MB limit, not the free plan's 3MB.
- Vinext, Cloudflare's rewrite, produces smaller bundles but lags on newer features such as partial pre-rendering.
Supporting services move too. The incremental cache lives in R2 storage, and image optimization moves to Cloudflare Images. Check your bundle size before you commit to a stack.
The other migration pattern is more radical: stop running a dynamic CMS at all.
16 YEARS OF WORDPRESS. THEN I DELETED IT.
i built websites on wordpress for 16 years
> this year we moved 40 client sites to astro
> they run on cloudflare workers for free
here is what 16 years taught me:
1. my clients dont edit their site
- they asked for a site, not an admin panel
- we carried a login page, a theme and a plugin stack for nothing
2. you dont own the code 100%
- theme licence. builder licence. plugin licences
- the site works until one of them changes the rules
3. woocommerce means wordpress again
- once a shop is involved the whole stack comes back
that is the one place i still see the case for it
4. security is a plugin list
- someone asked me how we handle security on 40 sites
- astro in git. no plugin stack to patch
- every change is a PR and i approve it
5. the move is the SEO job
- most people skip redirect mapping
- we ran the same 8 seo steps on every one of the 40 sites
6. i dont write code on client sites anymore
- agents do. weekly cf workers audits. i check after them
- nothing ships without my ok
> wordpress is not slow. 40 plugins on shared hosting are
> but after 16 years my question is simple
why does a client who never logs in carry a cms?
Michal Barus's point is that most clients never log in, so they carry a CMS, a theme, and a plugin stack for nothing. Agencies are compiling these sites to static Astro and serving them from Workers. Brixio's case study documents a full WordPress-to-Workers move in 19 days.[11] Cloudflare's own guidance on legacy migrations recommends incremental approaches: put Workers in front of existing applications and peel off routes over time, rather than doing a big-bang rewrite.[6]
What runs cleanly: static and Astro sites, Hono and itty-router APIs, Remix/React Router, SvelteKit.
What needs engineering: Next.js with heavy server features, apps with native Node modules, anything that assumes a filesystem.
Wrangler, Versions, and the Rise of Agent-Driven Deploys
Wrangler is Workers' CLI, and its least-understood feature is that versions and deployments are separate concepts. wrangler deploy uploads a version and deploys it in one step. Thilak's thread shows how to split those steps apart, a practice that matters more now that AI agents are writing code:
wrangler deploy ships your agent's code to 100% of traffic in one step. Split it into upload and deploy, and nothing goes live until you say so.
Cloudflare Workers keeps versions and deployments separate. wrangler deploy just does both at once.
1. Upload, don't deploy.
npx wrangler versions upload --message "agent: fix auth redirect" --tag pr-42
That creates a version that serves no traffic and prints a Version URL.
2. Test that exact version.
URL format: <version-prefix>-<worker-name>.<subdomain>.workers.dev
Want a stable link? Add --preview-alias staging
Version URLs are public when enabled. Put Cloudflare Access in front, or set "preview_urls": false.
3. Canary it.
npx wrangler versions deploy <new-id>@10% <old-id>@90% -y
4. Promote it.
npx wrangler versions deploy <new-id>@100% -y
5. Bail in seconds.
npx wrangler rollback <old-id> --message "bad agent deploy"
It creates a new deployment right away across all routes. With no ID it goes back to the version uploaded before the latest. Only the last 100 versions count.
6. Put it in your rules file:
"Never run wrangler deploy or wrangler versions deploy. Run wrangler versions upload --strict and give me the Version URL."
--strict blocks the upload if someone changed the Worker remotely.
What most people miss: versions don't track KV, R2, Durable Objects or D1 state. Rollback brings back old code, not your old data. If the agent ran a D1 migration, rollback won't undo it. And it's blocked entirely if a bound R2 bucket, KV namespace or queue has since been deleted.
Let agents upload. You decide what goes live.
Do you let your agent deploy to prod, or only upload?
The workflow:
- Upload a version that serves no traffic.
- Test it at its version URL.
- Canary it at 10%.
- Promote it to 100%.
- Roll back if needed.
His critical warning: rollback restores code, not data. A D1 migration your agent ran stays applied.
Cloudflare is also designing explicitly for agents:
One small step for humans, a big step for agentkind
We've been working on making it much easier for agents to deploy to Cloudflare Workers
AI agents can now deploy a real app without you signing up first, doing OAuth, creating an API token, or clicking through a dashboard
Just wrangler deploy --temporary
The wrangler deploy --temporary flag lets an agent ship a working app without account signup, OAuth, or API tokens. That change in deployment friction is reshaping how practitioners think about lock-in. Armin Ronacher, creator of Flask, summarized the shift:
AI really makes me re-evaluate things. I always liked Cloudflare's DOs but I was a) worried about lock-in and b) the DX was horrible. Now I worry about neither. AI can make me move off quickly and it's now the agent's problem to suffer through wrangler and their runtime.
View on XThis is the most important non-obvious dynamic in the 2026 conversation. Two of the classic objections to Workers were proprietary primitives like Durable Objects and a rough developer experience. If an agent can migrate you off in an afternoon, adopting proprietary primitives costs far less. The CISO Marketplace case study shows the speed in practice: 10 sites moved from Pages to Workers in a single day with Claude Code.[10]
Local development has also improved. Cloudflare's open-source runtime, workerd, runs locally, and community tooling now brings it into mainstream bundlers:
rspack-plugin-cloudflare v0.3.0
Run your Cloudflare Workers in workerd during `rspack serve`, with full HMR inside the Worker itself, then `rspack build` and `wrangler deploy`.
Same wrangler config and bindings as the Vite plugin, now for @rspack_dev
https://github.com/Cherry/rspack-plugin-cloudflare
Running locally on the same runtime as production removes a whole class of "works locally, breaks at the edge" bugs.
The Performance Fight: Benchmarks, the 3.5x Gap, and Who to Believe
In late 2025, Theo published benchmarks showing Workers trailing Vercel by up to 3.5x on CPU-heavy server rendering. Vercel published its own Fluid Compute results.[13] Cloudflare responded with a detailed postmortem.[12] The summary that circulated widely:
saw lots of people mentioning that their workers suddenly got faster after @theo's video, looks like this blog explains it.
how cloudflare closed a 3.5x performance gap, tl;dr:
- fixed request scheduling during cpu bursts (biggest impact - wasn't even cpu speed, just bad queueing)
- updated v8 garbage collector from 2017 settings (+25% boost - 8 year old config still in prod is kinda crazy)
- removed unnecessary buffer copies in opennext (50 x 2kb buffers per request - classic death by a thousand cuts lmao)
- switched to byte streams with proper highwatermark (4096 - interesting to know that defaults matter way more what i used to think)
- patched v8 json.parse with reviver (+33%, upstreamed to chrome 143 - fixing v8 itself is pretty insane ngl)
- fixed missing node_env=production in react ssr benchmark (dev mode in prod benchmarks... oops 👀👀)
- enabled force-dynamic in next.js config for proper streaming (config mismatches pretty much suck to debug)
- fixed node.js slow trig functions (3x faster, benefits
everyone - they literally fixed their competitor's platform lmfao)
now performs on par with @vercel on pretty much all benchmarks except next.js (gap significantly closed, work ongoing!!!!!)
The fixes reveal where the gap actually came from. It was mostly configuration rot, not raw CPU speed:
- request scheduling that queued badly during CPU bursts
- V8 garbage-collector settings dating to 2017
- redundant buffer copies in OpenNext
- benchmarks accidentally running React in development mode
Cloudflare also patched V8's JSON.parse with a reviver function and contributed the fix upstream to Chrome.[12]
Vendor benchmark fights are an old tradition in edge computing. In 2021, Fastly re-ran a Cloudflare benchmark and argued the opposite:
We re-ran Cloudflare’s experiment with more rigor. In this blog post, we explain why this experiment is a poor metric for measuring edge compute, but even so, @fastly's Compute@Edge significantly outperforms CF Workers. https://www.fastly.com/blog/debunking-cloudflares-recent-performance-tests
View on XLaura Thomson's broader point still holds: synthetic CPU tests are a poor proxy for real edge workloads. Third-party comparisons from 2026 show results that depend on region, workload shape, and caching.[14]
The practical lesson: don't pick a platform from anyone's benchmark. Deploy a representative route, meaning your framework, your database calls, and your payload sizes. Measure p50 and p99 latency from your users' regions. Benchmark the bill as well, because for I/O-bound apps, CPU-time billing usually matters more than a 20% latency difference.
Who Should Switch — and Who Should Wait
Across the migration stories, the pattern is consistent. Teams that switch for cost and cold starts usually get both, and the hard part is rarely the code itself.
I moved a live site to a completely new backend and deleted the old one.
TooldirectoryAI. com 1300+ ai tools.
It was on convex + vercel. now it's cloudflare workers + d1.
Why: wanted zero cold starts, lower costs, and global edge performance.
What i thought would be hard: rewriting the backend.
What was actually hard: migrating live relational data without dropping a single active request.
Users noticed nothing. which was the whole goal.
Not one of them has ever asked what stack it runs on.
The difficult part was migrating live relational data without dropping requests, not rewriting the backend. Screenly's earlier migration reported the same pattern of lower costs and faster load times once the move was done.[7]
Strong fit: switch now
- Global, I/O-bound APIs. These benefit most from CPU-time billing and edge proximity.
- Static, Astro, and JAMstack sites. They often fit within the free tier.
- Indie and side projects that need cost certainty and no request caps:
migrated https://llmdojo.dev from vercel to cloudflare workers, end to end in ~1hr
- pages load 30-50% faster
- $5 plan + ~$10-12/mo at launch traffic, no 10M request cap that kills the site
- dns, auto deploys from github, auth, everything moved
claude code + wrangler cli did the heavy lifting lessgoo
- Agent-built apps, where
--temporarydeploys and versioned uploads fit the workflow.
Needs planning: switch carefully
- Relational-data-heavy apps. Choose D1, a serverless-friendly database, or pooling before migrating.
- Large Next.js apps. Measure bundle size against the 3MB and 10MB limits, and choose between OpenNext's feature coverage and Vinext's smaller output.
- Code with heavy global state. Rewrite it for concurrent requests sharing one isolate.
Wait or stay put
- Long CPU-bound jobs, such as video processing or heavy ML inference, where CPU-time billing offers no advantage.
- Apps with deep native Node.js dependencies or filesystem assumptions.
- Teams already deep on Vercel whose bills are predictable and whose apps depend on the newest Next.js features.
Migration checklist
- Audit every database connection path.
- Pick your framework adapter and measure bundle size.
- Review global state for concurrency safety.
- Use
wrangler versions uploadand canary deploys, not one-shotdeploy. - Plan data migrations separately, since rollback won't undo them.
Bottom line for 2026: Workers beats Lambda on I/O-heavy workloads and cold starts. It beats Vercel on cost predictability for most indie and mid-size apps. It competes with Fastly on raw edge performance, with results that depend on workload. It wins whenever your code spends more time waiting than computing, and AI agents have made trying it cheaper than ever.
Sources
[1] How Workers works — https://developers.cloudflare.com/workers/reference/how-workers-works/
[2] Security model — https://developers.cloudflare.com/workers/reference/security-model/
[3] Safe in the sandbox: security hardening for Cloudflare Workers — https://blog.cloudflare.com/safe-in-the-sandbox-security-hardening-for-cloudflare-workers/
[4] Cloud Computing without Containers — https://blog.cloudflare.com/cloud-computing-without-containers/
[5] Workers concepts — https://developers.cloudflare.com/learning-paths/workers/concepts/workers-concepts/
[6] The Migration of Legacy Applications to Workers — https://blog.cloudflare.com/the-migration-of-legacy-applications-to-workers/
[7] Screenly - How we saved money and reduced load time with Cloudflare Workers — https://www.screenly.io/blog/2022/10/25/app-store-on-workers/
[8] Cloudflare Workers scale too well and broke our infrastructure, so we are rebuilding it on Workers — https://blog.cloudflare.com/devcycle-customer-story/
[9] Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs — https://blog.cloudflare.com/80-percent-lower-cloud-cost-how-baselime-moved-from-aws-to-cloudflare/
[10] Case Study: 10 Sites From Cloudflare Pages to Workers in a Day — https://cisomarketplace.com/blog/cloudflare-pages-to-workers-migration-claude-code-case-study
[11] Brixio Website Case Study | WordPress to Cloudflare Workers in 19 Days — https://brixio.io/case-studies/brixio-website-cloudflare-workers/
[12] Unpacking Cloudflare Workers CPU Performance Benchmarks — https://blog.cloudflare.com/unpacking-cloudflare-workers-cpu-performance-benchmarks/
[13] Server rendering benchmarks: Fluid Compute and Cloudflare Workers — https://vercel.com/blog/fluid-compute-benchmark-results
[14] Cloudflare Workers vs Vercel Edge: Latency & Cost 2026 — https://www.devopsness.com/blog/cloudflare-workers-vs-vercel-edge-a-latency-cost-comparison-2026-04-22
[15] Python Workers redux: fast cold starts, packages, and a uv-first workflow — https://blog.cloudflare.com/python-workers-advancements/
References (15 sources)
- How Workers works - developers.cloudflare.com
- Security model - developers.cloudflare.com
- Safe in the sandbox: security hardening for Cloudflare Workers - blog.cloudflare.com
- Cloud Computing without Containers - blog.cloudflare.com
- Workers concepts - developers.cloudflare.com
- The Migration of Legacy Applications to Workers - blog.cloudflare.com
- Screenly - How we saved money and reduced load time with Cloudflare Workers - screenly.io
- Cloudflare Workers scale too well and broke our infrastructure, so we are rebuilding it on Workers - blog.cloudflare.com
- Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs - blog.cloudflare.com
- Case Study: 10 Sites From Cloudflare Pages to Workers in a Day - cisomarketplace.com
- Brixio Website Case Study | WordPress to Cloudflare Workers in 19 Days - brixio.io
- Unpacking Cloudflare Workers CPU Performance Benchmarks - blog.cloudflare.com
- Server rendering benchmarks: Fluid Compute and Cloudflare Workers - vercel.com
- Cloudflare Workers vs Vercel Edge: Latency & Cost 2026 - devopsness.com
- Python Workers redux: fast cold starts, packages, and a uv-first workflow - blog.cloudflare.com