vercel · cloudflare · pricing
Vercel vs Cloudflare Pricing: Why the Gap Is So Big
By Aakash Verma ·
On price alone, Vercel vs Cloudflare isn’t close. Vercel Pro is $20 per developer seat with 1 TB of transfer, then $0.15 a gigabyte. Cloudflare’s Workers Paid plan is $5 a month for the whole account, and it doesn’t charge for bandwidth at all. For one ordinary Next.js app we priced below, that’s $20 to $665 a month on Vercel and $5.12 on Cloudflare, depending on team size and traffic.
So the real question isn’t which is cheaper. It’s whether the gap is worth the work of running Next.js somewhere it wasn’t built for.
Prices from Vercel’s pricing page and Cloudflare’s Workers pricing and Workers Builds limits, all checked on October 29, 2026.
What each one charges for
Vercel Pro: $20 a month per developer seat, viewers free, and a $20 usage credit. Included each month: 1 TB of Fast Data Transfer and 10 million CDN requests. Past that, from $0.15 per GB, $2 per million requests, $0.60 per million function invocations, $0.128 per hour of Active CPU and $0.0106 per GB-hour of provisioned memory.
Cloudflare Workers Paid: $5 a month per account. Included: 10 million requests and 30 million CPU milliseconds, then $0.30 per million requests and $0.02 per million CPU milliseconds. Requests for static assets are free and unlimited. Cloudflare’s page says there are “no additional charges for data transfer (egress) or throughput (bandwidth)”, and no charge for how long a request waits. Builds: 6,000 minutes a month included, then $0.005 a minute.
Notice what’s missing from Cloudflare’s list: seats and gigabytes. Those are the two lines that grow on a Vercel bill.
The same app on both
The same hypothetical Next.js app we used in Netlify vs Vercel pricing: 3 million requests a month, of which about 1 million hit server code, around 10 hours of Active CPU (about 36 ms per server request), 20 GB-hours of memory, and 100 production deploys with 2-minute builds.
On Vercel the function and build usage comes to about $4.89 a month, which the $20 credit covers. We counted the credit once per team.
On Cloudflare we assumed the same 36 ms of CPU per server request. That’s 36 million CPU milliseconds, 6 million over the included 30 million, so $0.12. The million server requests are inside the included 10 million, the other 2 million are static assets and free, and 200 build minutes are inside the 6,000. Total: $5.12, at any traffic level.
| Monthly transfer | Vercel, 1 developer | Vercel, 4 developers | Cloudflare, any team |
|---|---|---|---|
| 200 GB | $20.00 | $80.00 | $5.12 |
| 1 TB | $20.00 | $80.00 | $5.12 |
| 2 TB | $154.89 | $214.89 | $5.12 |
| 5 TB | $604.89 | $664.89 | $5.12 |

Up to a terabyte, the difference is seats: $15 a month for a solo developer, $75 for a team of four. Past a terabyte it’s transfer, and every extra terabyte adds $150 on Vercel and nothing on Cloudflare.
If you want to try your own traffic on the Cloudflare side, our Cloudflare Workers pricing calculator has requests, CPU time, cache hits, KV and D1.
What Cloudflare costs you instead
The bill is smaller. The work isn’t.
Next.js runs on Workers through the OpenNext Cloudflare adapter, not natively. Most apps build and run, but the features Vercel handles for you need setting up: the incremental cache for ISR lives in R2 or KV that you configure (small, but real, lines on the bill), image optimization goes through Cloudflare Images, billed on its own, and anything that leans on Vercel-only features (its Blob store, Edge Config, cron and preview comments) needs a replacement.
There are runtime limits to plan around too. A Worker isolate gets 128 MB of memory, and going over returns Error 1102 “Worker exceeded resource limits” (Workers limits). Code that buffers a big file in memory or uses a Node library Workers doesn’t support has to change.
One billing difference cuts the other way and is worth knowing. Both platforms now bill CPU only while code runs, so an API that waits on a database or an LLM isn’t paying for the wait in CPU. But Vercel also bills provisioned memory for the whole time an instance is alive, and Cloudflare doesn’t bill duration at all. For apps that stream long AI responses, that’s another line that only exists on Vercel.
Our honest take: a solo developer under a terabyte saves $15 a month by moving, which isn’t worth a weekend. A team of four doing 2 TB saves about $210 a month, over $2,500 a year, and that usually is.
How do I reduce my Vercel bill without moving?
Open Usage in the Vercel dashboard and sort Fast Data Transfer by path first. Usually a handful of paths are most of the gigabytes: video, large downloads, unoptimized images, or a JSON endpoint that isn’t cached.
Then the cheap fixes, in order: put long Cache-Control headers on anything that doesn’t change, serve big files from object storage with free egress (Cloudflare R2, see our R2 pricing calculator) instead of from the app, remove developer seats from people who only review (viewers are free), and turn on spend management so a traffic spike pauses or alerts at a number you picked.
If that still leaves a bill you can’t explain, send it to our free bill review. We’ll tell you whether moving is worth it for your traffic, or whether a few headers fix it.
Want us to look at your bill?
No upfront fee: for six months you pay half of what we save you each month, then you keep all of it. Nothing saved, nothing owed.
Also here: Free cloud cost audit ($0) · Cloud cost optimization services: $0 up front · Reduce your startup's AWS bill · Pricing: paid only from verified savings · Move from AWS to a European cloud