· 7 min read

Cloudflare Gives You Unlimited Bandwidth. Vercel Can Send You a $15K Bill. I Picked a Side.

Cloudflare Gives You Unlimited Bandwidth. Vercel Can Send You a $15K Bill. I Picked a Side.

Every six months someone writes another "Vercel vs Netlify vs Cloudflare" comparison. They all look the same. Performance charts. Edge location counts. Build minutes. Framework support.

None of them answer the question that actually matters to a solo operator, which is: if something goes wrong while I'm asleep, how much can it cost me?

That's blast radius. And it's the only lens that matters if you're the only person on the hook for the bill.

The Numbers That Actually Matter

Let me put the free tiers side by side, focused only on the parts that determine your worst case.

Vercel Hobby (free):

  • 100 GB bandwidth included per month
  • 6,000 build minutes per month
  • Soft caps — you get warned when you approach limits
  • No hard spending cap by default. Overages are billed.

Netlify Free:

  • 100 GB bandwidth included per month
  • 300 build minutes per month
  • No hard spending cap by default. Overages are billed.
  • The free tier explicitly does not allow commercial use (most solo devs don't read this until it matters)

Cloudflare Pages Free:

  • Unlimited bandwidth. On every plan. Including free.
  • 500 builds per month
  • No bandwidth overages because there are no bandwidth limits

Read that Cloudflare line again. Unlimited bandwidth on the free tier. That's not a marketing flourish. That's an architectural decision Cloudflare made about how they price the CDN layer. Their entire business model assumes bandwidth is essentially free to them at the edge, so they don't charge for it. Vercel and Netlify, on the other hand, are paying AWS/GCP for egress, and they pass that cost through.

For 99% of solo operators, the bandwidth question will never matter. You'll never hit the cap. Your blog gets 4,000 visits a month.

But the 1% case is where blast radius lives. And the 1% case is where the difference becomes four-figure or five-figure bills.

The Horror Stories

I'm not going to link them here because the people involved don't need more attention, but search "Vercel surprise bill" and you'll find multiple accounts of solo devs waking up to bills between $4,000 and $50,000. The usual pattern:

  • App goes viral or gets scraped aggressively
  • Bandwidth and serverless function invocations spike
  • Monitoring is per-day or per-hour, not real-time
  • Vercel bills for the overage
  • Dev wakes up, panics, asks Twitter what to do

Vercel has gotten better about this in the last year. They've added spending limits as a feature, but they are opt-in and off by default. They've added alerts, but alerts don't stop the meter.

The Netlify version of this is less extreme because their bandwidth pricing is less aggressive, but it exists. Same pattern. Same opt-in-only spending cap.

The Cloudflare version doesn't exist. If you get viral on Cloudflare Pages, the bill is the same as a quiet day. Zero. That's the design.

What I Actually Run

This blog runs on still Vercel. Static-ish Astro output, nothing fancy. If tomorrow morning I accidentally wrote something that trended on Hacker News, my hosting bill could go up. That's the only reason I'm migrating to Cloudflare Pages. I'm willing to write anything controversial. The cost of going viral will be zero, so the risk of going viral is zero. It frees me up.

My active SaaS project runs on Vercel. Next.js, serverless functions, the whole ecosystem. Vercel's DX for Next.js is still the best in the market, and for a product that's generating revenue, I want the smooth path. But: I have the spending cap set to a number I could absorb if things went sideways. It's on. It's not that high. If a bug sends my function invocations through the roof, the site goes down before the bill goes nuclear. I would rather have an outage than a bill.

I don't run anything on Netlify anymore. The commercial-use clause on the free tier spooked me, and once you're on a paid plan, there's nothing Netlify does that Vercel or Cloudflare doesn't do equally well.

That's not a knock on Netlify as a product. It's great. It just doesn't have a specific reason to exist in my stack right now.

The DX Question

Let's be fair. Cloudflare Pages has trade-offs.

Cold start on edge functions is excellent but the framework support is narrower than Vercel. If you're on vanilla static (Astro, Hugo, Jekyll, plain HTML), Cloudflare is fantastic. If you're on Next.js with heavy server rendering, Cloudflare's Next.js support has gotten dramatically better — especially after the Astro acquisition and the Workers runtime becoming first-class — but Vercel is still smoother for that specific stack.

The dashboard is less polished. Vercel's UI is beautiful. Cloudflare's dashboard still feels like you're administering an enterprise CDN, because you are.

Deploys from Git are slightly less elegant. Vercel's preview deploys per PR are the best in the business. Cloudflare's preview deploys work fine, but Vercel clearly invested more in that specific loop.

For a solo operator, the question is how much that DX delta is worth. My answer: for a revenue-generating product, it's worth paying Vercel and setting a spending cap. For everything else — blogs, landing pages, experiments, side projects — Cloudflare wins because the worst case is zero.

The One Setting That Changes Everything

If you take nothing else from this post, do this today:

On Vercel: Go to Settings → Billing → Spend Management. Set a hard spending cap. Any number you can absorb without panic. Mine is $50 on hobby projects, higher on the product. If you hit the cap, your site goes down instead of your bill going up. This is the behavior you want.

On Netlify: Same idea. Team Settings → Billing → Usage Limits. There's a hard-cap option buried in there. Turn it on.

On Cloudflare Pages: You don't need to do anything. There's no equivalent setting because there's no equivalent risk.

For the solo operator without a real budget, the default opt-in behavior on Vercel and Netlify is the single biggest unforced error you can make with your hosting. It takes thirty seconds to fix. Go fix it right now.

The Performance Chart You Actually Care About

People obsess over latency benchmarks. For 95% of solo projects, any of these three platforms is fast enough that your users won't notice. The edge location counts are all in the hundreds. The cold starts are all sub-second. The differences are measurable but not noticeable.

If you're building a global product where every 50ms matters — a real-time app, a game, a high-frequency API — then Cloudflare's edge density does matter, and the Workers runtime advantage is real. For everything else, pick based on blast radius and DX. The performance is good enough everywhere.

The Honest Summary

Cloudflare Pages: Pick this for blogs, landing pages, marketing sites, static docs, or anything where "going viral" is a possibility you'd welcome rather than fear. Unlimited bandwidth on the free tier is a rare gift. Take it.

Vercel: Pick this for Next.js products where the DX matters and you can commit to setting a hard spending cap. The preview deploys and the Next.js integration are genuinely best-in-class. Just don't leave the spending cap off.

Netlify: Pick this if you have a specific reason — forms, the plugin ecosystem, a team that already knows it well. Otherwise, the other two platforms have each taken the lead on what Netlify used to be best at.

The general principle: optimize your hosting stack for the worst case, not the average case. When you're solo, your average case is fine regardless of platform. Your worst case is where you actually live or die.

Go set your spending caps. Seriously.

Sources

Stay in the Loop

Get new posts delivered to your inbox. No spam, unsubscribe anytime.

Related Posts