Short answer: At scale, Cloudflare Pages is the cheapest of the three for serving traffic, because static bandwidth is never billed and dynamic requests cost $0.30 per million on the $5 Workers Paid plan. Railway is the cheapest place to run always-on servers, workers, and databases, at $20 per vCPU-month, $10 per GB of memory per month, and $0.05/GB egress. Vercel costs the most per terabyte ($0.15/GB past the 1 TB included on Pro) but buys the smoothest Next.js workflow, so pick it when developer time matters more than the bandwidth bill.

These three platforms are often compared as if they were interchangeable. They are not. Vercel and Cloudflare Pages are edge platforms for frontends and request-scoped functions. Railway runs containers, so it hosts the long-lived processes the other two cannot. The cost question therefore splits into two: what you pay per gigabyte served, and what you pay per unit of compute. This page prices both at published list rates, checked against the Vercel, Cloudflare, and Railway pricing pages in October 2026, and works through three realistic workloads.

For the frontend-only comparison, see Vercel vs Cloudflare Pages. For backend hosts, see Fly.io vs Railway vs Render vs Coolify.

Vercel vs Cloudflare Pages vs Railway pricing at a glance

Line itemVercel (Pro)Cloudflare Pages + Workers PaidRailway (Hobby / Pro)
Base price$20/month, includes $20 usage creditPages Free $0; Workers Paid $5/monthHobby $5/month, Pro $20/month per workspace, each including equal usage credit
Bandwidth included1 TB Fast Data TransferUnlimited static bandwidthNone (pay per GB)
Bandwidth overageFrom $0.15/GB$0 for static assets$0.05/GB egress
Requests10M CDN requests included, then from $2 per millionStatic requests free; Workers 10M/month included, then $0.30 per millionNot billed per request
Compute modelFluid compute functions: Active CPU from $0.128/hour, memory from $0.0106/GB-hour, invocations from $0.60 per millionWorkers isolates: 30M CPU ms/month included, then $0.02 per million CPU msContainers metered per second: $20 per vCPU-month, $10 per GB memory-month
Long-running processesNo (request-scoped functions)No (request-scoped isolates)Yes
Persistent storageVia marketplace integrationsD1, KV, R2 (metered separately)Volumes at $0.15/GB-month; databases run as services
Global edge CDNYesYesNo (region-based)

Vercel lists its usage rates as "starting at" because some rates vary by region. The figures below use the starting rates, so real Vercel bills in pricier regions can run higher.

Real bandwidth cost at 1 TB, 5 TB, and 10 TB

Bandwidth is where the three diverge most. This table isolates the data-transfer line item only, before compute and base fees.

Monthly egressVercel ProCloudflare Pages (static)Railway
1 TB$0 (included)$0$50
5 TB$600$0$250
10 TB$1,350$0$500

Railway's per-gigabyte rate is a third of Vercel's, but Vercel includes the first terabyte, so at 1 TB Vercel's data transfer costs less. Past roughly 1.5 TB, Railway's egress line becomes cheaper than Vercel's. Cloudflare Pages wins every row for static assets. The caveat is that Cloudflare's unlimited bandwidth covers static files; HTML rendered by Workers is billed by request and CPU time, not by gigabyte.

Railway has no built-in CDN. If you serve heavy assets from a Railway service, every byte leaves your region and is billed. Putting a CDN in front, or moving the static frontend to Cloudflare Pages, removes most of that egress.

Three workloads, priced end to end

Each scenario uses one Vercel seat and published list prices. Compute assumptions are stated so you can rescale them to your own numbers. These are modeled estimates, not invoices.

1. Content site: 1 TB egress, 5M page views, mostly static

  • Vercel Pro: $20. The 1 TB and 5M requests fall inside Pro's allowances.
  • Cloudflare Pages: $0 on the Free plan, which allows commercial use. $5 if you add Pages Functions beyond 100,000 requests per day.
  • Railway: about $60. A small web server averaging 0.25 vCPU ($5) and 0.5 GB memory ($5), plus 1 TB of egress ($50).

2. Growing SaaS: 5 TB egress, 50M requests, 30M dynamic invocations

Assumes 20 ms of CPU and 200 ms of wall time per dynamic request at 1 GB memory on Vercel, and an always-on Railway deployment averaging 2 vCPU and 4 GB memory.

Cost lineVercel ProCloudflare Pages + Workers PaidRailway Pro
Base fee$20$5$20
Bandwidth$600 (4 TB over)$0$250
Requests$80 (40M over)$6 (20M over)$0
ComputeAbout $57 (invocations $18, Active CPU about $21, memory about $18)About $11 (570M CPU ms over)$80 (2 vCPU $40, 4 GB $40)
Usage credit-$20None-$20
Estimated monthly totalAbout $737About $22About $330

Vercel's memory estimate is an upper bound: Fluid compute lets one instance serve concurrent requests, which can cut provisioned memory well below one GB-second per request-second. Even if memory fell to zero, bandwidth would still dominate Vercel's bill. Cloudflare's total assumes the app fits the Workers model, including its per-isolate memory limit, and excludes D1, KV, or R2 usage.

3. Always-on backend: a 24/7 worker at 2 vCPU and 4 GB, 500 GB egress

  • Railway: about $105 per month ($40 CPU + $40 memory + $25 egress), on either plan once usage exceeds the included credit.
  • Vercel: not a fit. Functions are request-scoped and have a maximum duration, so a persistent queue consumer or WebSocket server needs another host.
  • Cloudflare: not a fit on Pages and Workers alone. Durable Objects or Cloudflare Containers can cover some of this, but they are separate products with their own pricing.

Where each option fits (and where it does not)

PlatformBest forWhere it loses
Cloudflare PagesHigh-traffic static and edge-rendered sites; teams that want bandwidth off the billLong-running processes; Node APIs that do not run in the Workers runtime; Next.js features that need adapter work
RailwayAPIs, background workers, cron jobs, WebSockets, and databases that need an always-on containerServing heavy static traffic from one region at $0.05/GB; no global CDN
VercelNext.js teams that value preview deployments, framework support, and minimal configurationBandwidth-heavy workloads past 1 TB; per-seat pricing as the team grows

The honest verdict is that no single platform wins on cost across all three workloads. Cloudflare Pages wins on serving cost by a wide margin. Railway wins whenever you need a process that stays running. Vercel is rarely the cheapest at scale, and its value is developer experience on Next.js, which can outweigh a few hundred dollars a month for a small team. Many production stacks combine two: the frontend on Cloudflare Pages or Vercel, and the API, workers, and Postgres on Railway.

How to keep the bill down on each platform

  • Vercel: move large media to object storage or an external CDN, cache aggressively so requests stay at the edge, and watch the Fast Data Transfer meter after 1 TB. See our Vercel, Netlify, and Cloudflare Pages pricing comparison.
  • Cloudflare Pages: keep assets static wherever possible, because Functions requests and CPU time are the only meters that grow with traffic. Details are in our Cloudflare Pages pricing guide.
  • Railway: right-size memory, since idle memory is billed, stop preview environments you are not using, and keep static assets behind a CDN so they do not count as egress.

Frequently asked questions

Which is cheapest at scale: Vercel, Cloudflare Pages, or Railway?

Cloudflare Pages is cheapest for bandwidth-heavy sites because static bandwidth is never billed on any plan, and dynamic code runs on Workers Paid at $5/month plus $0.30 per million requests. Railway is cheapest for always-on servers because it bills only the CPU and memory you use ($20 per vCPU-month, $10 per GB-month) plus $0.05/GB egress. Vercel is the most expensive per terabyte at scale ($0.15/GB beyond the 1 TB included on Pro), but it is the most polished option for Next.js.

How much does 5 TB of bandwidth cost on Vercel, Cloudflare Pages, and Railway?

At published October 2026 list prices: Vercel Pro includes 1 TB, so the remaining 4 TB cost about $600 at the starting $0.15/GB rate. Railway charges $0.05/GB egress, so 5 TB costs $250. Cloudflare Pages charges $0 for static bandwidth on every plan.

Can Railway replace Vercel or Cloudflare Pages for a frontend?

It can host one, but it is not a CDN. Railway runs your app as a container in the region you pick and bills every gigabyte that leaves it at $0.05. For a static or mostly cached frontend, Cloudflare Pages or Vercel serve from a global edge network for less. A common split is the frontend on Cloudflare Pages or Vercel and the API, workers, and database on Railway.

Can Vercel or Cloudflare run long-running servers like Railway?

Not as a plain always-on process. Vercel Functions are request-scoped with a maximum duration, and Cloudflare Workers are request-scoped isolates billed by CPU time. Neither runs a 24/7 background worker, queue consumer, or self-managed database the way Railway's containers do. Cloudflare sells separate products for stateful work (Durable Objects, Containers), which this comparison does not price.

Does Vercel's $20 Pro plan include usage?

Yes. Vercel's pricing page lists a $20 monthly usage credit on Pro, alongside 1 TB of Fast Data Transfer and 10 million CDN requests per month. Usage beyond the credit and allowances is billed: data transfer from $0.15/GB, CDN requests from $2 per million, Active CPU from $0.128 per hour, provisioned memory from $0.0106 per GB-hour, and invocations from $0.60 per million.

Does Railway charge when a service is idle?

Railway meters CPU and memory per second, and its pricing page states that stopped services cost nothing. A running but idle service still uses some memory, which is billed at $10 per GB-month. The Hobby plan is $5/month and Pro is $20/month per workspace, each including the same amount in usage credit.