Skip to main content

Railway vs Render vs Fly.io 2026 Benchmarks: The Spend Threshold Where Self-Hosting Wins

10 min readDora NodaDora Noda
Share
On this page

On February 6, 2026, Heroku made it official: the platform that taught a generation to git push heroku main is now in "sustaining engineering" — stability patches and support, but no new features and no new enterprise contracts. Thousands of teams that stayed out of inertia suddenly have a migration on the roadmap, and the question they all ask first is the same one: Railway, Render, or Fly.io?

Independent benchmarks published through 2026 give a remarkably stable answer. The most thorough is techsy.io's three-way comparison, re-checked against all three vendors' live pricing pages in July 2026: Railway wins the hobby tier and the fastest time-to-deploy, Render wins predictable bills and production-grade Postgres, and Fly.io wins raw cost at scale plus genuine global edge. That verdict pattern repeats across nearly every roundup this year.

Here is the part most comparisons stop short of: all three stop winning at roughly the same point. Once your managed bill crosses about $150–250 a month, a single flat-rate box on owned-style infrastructure absorbs the same stack for a tenth of the cost — and the line item that pushes you across that threshold fastest is egress. This post puts numbers on all of it: same app, three bills, four traffic tiers, the egress crossover math, and the spend threshold where self-hosting wins.

Same app, three bills

Pricing models first, because the models explain every number that follows. Railway bills per second for CPU ($0.00000772 per vCPU-second) and memory ($0.00000386 per GB-second), with a $5/month Hobby subscription acting as a spending cap and a $20/month-per-seat Pro plan above it. Render charges flat monthly tiers per service — Starter at $7, Standard at $25, Pro from $85 up to $450 at Pro Ultra — so you pay for reserved capacity whether you use it or not. Fly.io charges per VM-second under its Machines model (a shared-cpu-1x with 256MB runs about $2.02/month if left on 24/7), plus volumes at $0.15/GB/month and regionally tiered egress.

The free-tier era, meanwhile, is effectively over. Railway killed its free tier in 2023 (a one-time $5 trial credit is all that remains), Fly.io ended the free allowance for any organization created after October 2024 (a short trial, then card-from-dollar-one billing), and only Render still offers a free tier — with services that spin down after 15 minutes idle and take on the order of a minute to answer the next request.

Against that backdrop, here is what the same stack costs on each platform at four traffic tiers, using techsy.io's July 2026 figures:

TierStackRailwayRenderFly.io
Hobby1 web + 1 DB, under 100 req/day~$5/mo$0 (free tier)~$4–6/mo
Startup1 web + 1 worker + Postgres + Redis, ~500 req/min~$25–40/mo~$50–60/mo~$20–35/mo
Growth2 web + 1 worker + Postgres + Redis, ~2K req/min~$80–120/mo~$130–175/mo~$60–90/mo
Scale4 web + 2 workers + Postgres cluster + Redis, 10K+ req/min~$250–400/mo~$350–500/mo~$150–250/mo

Each figure bundles the full stack for its tier — compute, managed Postgres, Redis, and that tier's typical egress — but excludes team seats, which bill separately on every platform. Three patterns jump out. First, Railway and Fly.io undercut Render at almost every paid tier, because usage-based billing only charges for consumed capacity while Render's flat tiers charge for reserved capacity. Second, Render is the most expensive and the most predictable — you will never get a surprise 3 AM bill, and for some teams that certainty is worth the premium. Third, Fly.io pulls away as traffic grows, and the reason is almost entirely one line item.

Egress is the line item that decides it

Compute gets the headlines; bandwidth decides the invoice. The three platforms' egress policies could hardly differ more: Railway charges a flat $0.05/GB, Fly.io tiers it by region ($0.02/GB in North America and Europe, $0.04 in Asia-Pacific, Oceania, and South America, $0.12 in Africa and India), and Render bundles egress into its plans on most tiers.

Run the crossover math at two realistic volumes. At 100 GB/month of egress — a typical early-SaaS API serving JSON to a few thousand users — Railway adds $5 to the bill while Fly.io in NA/EU adds $2. A $3 delta: noise.

At 1 TB/month — the same API after a growth year, or anything serving images, exports, or model artifacts — Railway adds $50 while Fly.io in NA/EU adds $20. A $30 delta every month, enough on its own to flip the Startup and Growth tiers above from Railway to Fly.io. Serve that terabyte mostly to Asia-Pacific users and Fly.io's cut drops to $40 versus $50 — still cheaper, just less dramatically. Serve it to users in Africa or India at $0.12/GB and Fly.io suddenly costs $120 for the same bytes, the most expensive of the three — a genuine trap for teams that picked Fly.io for "cheap egress" without reading the regional table.

The rule of thumb: below ~200 GB/month of egress, pick on developer experience and database needs, because bandwidth won't move the needle. Above it, model your egress by region before you model anything else — it is the single variable most likely to change your winner.

What money can't buy: latency, Postgres, and deploy speed

Price narrows the field; four non-price factors usually close the decision.

Latency follows regions. Railway runs 4 regions, Render lists 5 (Oregon, Ohio, Virginia, Frankfurt, Singapore), and Fly.io operates 18. OpenStatus's independent latency monitoring across six global locations measured Railway's median warm latency at 381ms against Fly.io's 61ms — the expected cost of serving the planet from one region versus serving each user from a nearby one. If your users span continents and your app is interactive, no pricing advantage overcomes physics: that workload belongs on Fly.io or behind a CDN, full stop.

Postgres maturity is Render's moat. Render's managed Postgres offers point-in-time recovery, read replicas, and automated backups. Railway's Postgres is containerized with an HA option that only reached experimental status in March 2026. Fly.io's Postgres is community-maintained and effectively unmanaged. Teams that have been paged by a database at 2 AM tend to weight this section more heavily than the pricing table — and it is the single strongest reason to pay Render's premium.

Deploy speed is Railway's moat. Railway's Railpack auto-detection (successor to Nixpacks) takes a repo to a URL in about two minutes with no Dockerfile and an excellent railway up CLI. Render takes three to five minutes through dashboard-driven native buildpacks, with no native CLI at all. Fly.io takes five to ten minutes and effectively requires a Dockerfile. For prototyping velocity and CLI-first developers, Railway is unchallenged; for teams that already containerize everything, Fly.io's requirement is a non-issue.

Scale-to-zero behavior differs in kind, not degree. Fly.io Machines wake on request, so idle services genuinely cost near zero. Railway keeps paid services warm — no cold starts, but no zero either. Render only scales to zero on the free tier, which is exactly the tier with the minute-long cold starts. An internal tool used twice a day is nearly free on Fly.io and full-price everywhere else; a customer-facing API that must answer in milliseconds wants Railway's always-warm model.

The workload picker: which profile picks what

Fold price and non-price together and four profiles fall out cleanly:

  • Weekend prototype / side project: Render's free tier if you tolerate spin-down, otherwise Railway Hobby at $5 or Fly.io at ~$4–6. Pick by whichever dashboard annoys you least; the dollars are interchangeable.
  • Early SaaS with a real database (the Heroku Standard-2X refugee at ~$50/month): Railway for speed of iteration, Render if the database keeps you up at night. Both land near or below the old Heroku bill, which is why this segment churns happiest.
  • Growing team, multiple services, preview environments: Railway's auto-generated PR environments and unlimited-seat team plans versus Render's $25/month flat Pro workspace (repriced April 2026 — re-check any older comparison). Fly.io's manual preview setup is a real tax here.
  • Global, latency-sensitive, or high-egress (the Heroku Performance-M refugee at ~$250/month): Fly.io, with the regional-egress caveat above. Nothing else in this price band puts machines on three continents.

Note what is missing: a profile where the answer is "stay on Heroku." Sustaining engineering means the platform is frozen while everything around it — runtimes, compliance requirements, GPU-adjacent workloads — keeps moving. The migration question is when, not whether.

The spend threshold where none of them wins

Now the derivation the title promised. Stack the Scale-tier numbers against a flat box: ~$250–400/month on Railway, ~$350–500 on Render, ~$150–250 on Fly.io — for four web/worker machines, a Postgres cluster, and Redis.

That same shape fits comfortably on a single €10–40/month dedicated-style box (operators routinely report running half a dozen production services on one €10 Hetzner machine with a self-hosted PaaS layer on top), or a small handful of €4.35-class VPS instances with room to spare — with block storage and off-site backups adding single-digit euros, not hundreds of dollars. The honest all-in number for the self-hosted side, including backups and your time amortized badly, lands an order of magnitude below the managed bills: teams migrating off managed clouds onto owned hardware routinely report 80–90% cost reductions, and ten small projects that cost $150–250/month past managed free tiers collapse to low-double-digit euros on one box.

So the threshold rule: if your managed projection sits under ~$100/month, the ops time you save dwarfs the markup — stay managed and pick by the workload picker above. Between ~$100 and $250, start counting: Fly.io stretches furthest here thanks to $0.02 egress, but a single flat box already undercuts all three. Past ~$250, self-hosting wins on price for any team with even part-time ops capacity, and every additional service you add makes the managed side worse (per-service tiers, per-seat plans, per-GB egress) while the flat box absorbs it for free.

The honest caveat is the one the $X-threshold discourse always buries: the box is cheap, the pager is not. The threshold assumes someone on the team can own upgrades, backups, and a 2 AM disk-full alert — whether directly or through an open-source PaaS layer that automates the toil. If that person does not exist and cannot be hired, Render's premium is not a markup, it is salary arbitrage, and you should keep paying it gladly.

The bottom line

Heroku's February 2026 announcement did not just move thousands of teams — it clarified the market into three durable lanes: Railway for iteration speed, Render for managed predictability, Fly.io for global reach at scale. The 2026 benchmarks agree on the lanes; they only disagree at the margins. And all three lanes end at the same exit: the month your bill crosses ~$150–250, stop comparing managed platforms against each other and start comparing them against a box.

Running that comparison for real? Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Star the repo on GitHub or deploy your first app today.

Related articles

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex