Pricing & overage
- Overage behaviour
- throttle
- Bandwidth price (/TB)
- –
- Price @ 1 TB (/mo)
- –
- Build minutes incl. (min/mo)
- –
- Image opt billing
- byo
- Analytics cost (/mo)
- –
- Free tier
- 5
The interesting number is not the base price, it is the marginal one. Cloudflare charges nothing per terabyte. Hetzner charges about €1. Fly.io charges $20 in North America and Europe, and roughly double that into Asia-Pacific. Railway charges $50. AWS Amplify and Vercel both land near $150. Netlify charges around $550, because its overage is sold in $55 blocks of 100 GB.
Price is one group of 7 fields out of 26. Everything else — features, limits, portability, how well any of it works for agents — is on the full vercel alternatives compared (2026) comparison.
The interesting number is not the base price, it is the marginal one. Cloudflare charges nothing per terabyte. Hetzner charges about €1. Fly.io charges $20 in North America and Europe, and roughly double that into Asia-Pacific. Railway charges $50. AWS Amplify and Vercel both land near $150. Netlify charges around $550, because its overage is sold in $55 blocks of 100 GB.
Line those up and the ordering barely changes as you scale: at 1 TB Vercel looks competitive because that terabyte is bundled, and at 5 TB it costs upwards of $600 while Cloudflare still costs $5. This is why "is Vercel expensive?" has no answer without a traffic number attached. Below a terabyte the honest answer is no. Above three or four, on an image-heavy content site, it becomes the largest line item in a small company's infrastructure spend.
The mitigation nobody mentions is that you can keep Vercel and put Cloudflare in front of it, cache aggressively, and cut billable transfer by most of it. That is more work than moving hosts. It is much less work than rewriting for a new runtime.
Start with the framework question, because it constrains everything else. If you depend on Next.js features that only exist on Vercel's own runtime — PPR in particular, and ISR revalidation shared across regions — your realistic choices are Vercel, or a container running next start and accepting a single-region cache. Everything else on this page is a compromise between those two.
Then apply the traffic test. Under 500 GB a month, pick on developer experience and stop optimising: the spread between every option here is under $30. Over 2 TB, pick on egress price, because nothing else on the invoice will matter.
Then apply the pager test. Managed hosts sell you an on-call rotation more than they sell you compute. Coolify and Dokploy are excellent software and they do not answer the phone. If your team has one backend engineer and a deadline, that is a decisive argument for Railway or Render over a VPS, whatever the pricing column says.
Finally, check the region. Australian and New Zealand teams should treat the Sydney column as a hard filter rather than a nice-to-have. Singapore adds roughly 90 ms of round trip, which is visible on any page that makes more than one sequential call.
Moving off Vercel is easy for static and SSR-only apps and hard for anything touching the platform's own primitives. A Next.js app that uses only app/ routes, next/image and standard middleware moves to a container in an afternoon: add a Dockerfile, set output: "standalone", point DNS. The friction starts with Vercel KV, Blob, Edge Config and cron routes, each of which needs a replacement service rather than a config change.
The two migrations that are consistently underestimated are image optimisation and ISR. next/image on a container optimises on your own CPU with no CDN in front, which is fine at low volume and expensive at high volume; most teams end up putting Cloudflare Images or a third-party image CDN back in. ISR across multiple container instances revalidates per instance unless you configure a shared cache handler, which means stale pages behave differently in production than they did on Vercel — and it usually surfaces as a bug report rather than a metric.
The reverse migration, from a container host onto Vercel, is much easier. That is worth knowing while you are choosing: starting on Railway or Fly costs you nothing in optionality, whereas starting on Vercel and building against its primitives does.
Every price here is the lowest paid tier a commercial project can actually ship on, not the free tier and not an enterprise quote. "Price at 1 TB" is the estimated monthly invoice for one small production app serving 1 TB of transfer and about a million requests: seat or base fee, plus one always-on instance where the platform needs one, plus metered bandwidth at the vendor's published overage rate. It deliberately ignores databases, heavy compute and image transformations, because those diverge so far between apps that a single number would be dishonest. Treat it as a shape, not a quote.
The killer field is overage behaviour, and it is an enum rather than a score because the four outcomes are genuinely different failure modes, not points on a line. throttle means you get slower or start serving errors and no invoice arrives. hard-stop means the site goes down and no invoice arrives. bill means the site stays up and the invoice is unbounded. bill-then-suspend means you get both. We rank them in that order because a surprise five-figure bill is harder to undo than an hour of downtime — but that is an editorial position, and if uptime is worth more to you than predictability, reweight the field and bill becomes the best answer on the page. Cells marked "inferred" are our reasoning from adjacent published facts; blank cells are facts we could not stand behind, and we would rather show a dash than a plausible wrong number.
On the Pro plan, nothing breaks and you get billed. The first terabyte of transfer is included; beyond that you pay roughly $0.15/GB, more out of Sydney. Vercel's Spend Management can pause the project at an amount you choose, but it is off by default. Turn it on before you launch, not after.
Only if you already run servers. A Hetzner CX22 with Coolify costs about €4 a month including 20 TB of traffic, versus $20 plus overage on Vercel, so the savings are real but small in absolute terms until you serve several terabytes. The genuine cost is that TLS renewals, disk pressure and the 3am reboot become yours.
Cloudflare, by a distance: 100,000 requests a day, unmetered bandwidth, and commercial use is allowed. Vercel's Hobby tier is more generous in features but forbids commercial use, which catches people out when a side project starts taking money. Render's free tier is fine for staging but spins instances down after fifteen minutes of idle.
Almost nothing. Free tiers generally hard-stop or suspend; paid tiers almost universally bill. The self-host rows are the only ones that degrade gracefully — a saturated box gets slow, it does not send an invoice. If you want a hard ceiling on a managed host, Vercel's Spend Management and Railway's usage limits are the two that will genuinely stop spending rather than just alert you.