On February 6, 2026, Salesforce moved Heroku into sustaining engineering: no new features, no new enterprise contracts, maintenance only. Thousands of teams started comparison-shopping, and one comparison absorbed most of that traffic: Techsy's Railway vs Render vs Fly.io: Benchmarks & Pricing (2026), with every price, region count, and plan name re-checked against live pages on July 19, 2026.
The pricing half of that comparison has been audited exhaustively since — including on this blog. The halves nobody has put under one roof are the benchmark half (deploy speed, cold starts, regions, scale-to-zero) with an October status stamp, and the fallout from Render's April 23 team-pricing restructure: not just the flat seat fee everyone covered, but the two genuinely new billing lines it introduced. Those lines, plus the benchmarks, are what actually decide the self-host math. Here is the table first, then the bill.
The benchmark table, July 19 numbers with October status
Techsy's figures are theirs, re-verified July 19. The status stamps are mine, checked against each vendor's docs and changelogs in October.
| Benchmark | Railway | Render | Fly.io | October status |
|---|---|---|---|---|
| Time to first deploy | ~2 min, zero-config Railpack | 3–5 min, dashboard-first | 5–10 min, you write fly.toml | Holds |
| Cold start | N/A — paid plans never scale to zero | 30–60s on the free tier (15-min spin-down) | 300ms–2s on Machines wake | Holds |
| Regions | 4, on second-gen Metal | 5 (Virginia newest) | 18 | Holds |
| Scale-to-zero | No (stays warm on paid) | Free tier only | Yes, auto_stop_machines | Holds |
| Managed Postgres | Template + experimental HA | PITR, replicas, HA standby | Explicitly unmanaged; Managed v2 in beta | Railway still experimental; Fly softening |
| Startup price (~500 req/min) | ~$25–40/mo | ~$50–60/mo | ~$20–35/mo | Roughly holds; Render plan IDs redrawn |
| Scale price (10K+ req/min) | ~$250–400/mo | ~$350–500/mo | ~$150–250/mo | Holds; the gap is still egress |
Two things stand out before any prose. First, the performance rows barely moved in three months — benchmarks are stickier than price lists. Second, the rows that did move all sit on the database and billing side, which is exactly where the self-host decision lives. Take each in turn.
What moved since July 19
Render redrew the compute ladder on August 26. Memory-optimized tiers at every step, a new 12-CPU tier reaching 96 GB of RAM, and spec-based plan IDs (2c-8g) replacing the old Starter-to-Pro-Ultra names — check the Render changelog for the rollout. The entry price points held, so Techsy's tier ranges still scan, but any bill built on the old plan names needs re-reading against the new IDs. This was the "coming soon: high-memory compute" line from the April announcement, delivered.
Render's legacy plans are gone for everyone. The April 23 replan gave legacy workspaces until August 1 to migrate; as of that date, every workspace is on Hobby ($0), Pro ($25/mo), Scale ($499/mo), or Enterprise. The old per-seat prices now exist only in old invoices. Any comparison still quoting $19/seat is describing a product you can no longer buy.
Railway's HA Postgres is still experimental. The March 13 changelog shipped one-click Patroni-based HA to Priority Boarding with an explicit "not production-ready, don't upgrade a production database to it yet" — and no GA announcement has superseded it. Prisma's October 8 platform check still lists Railway backups, point-in-time recovery, high availability, and PgBouncer pooling as opt-in rather than managed defaults. Reliability context for the benchmark rows: Northflank reports five major Railway incidents between November 2025 and May 2026 including an 8-hour full outage, against published availability targets of 99.9% (Hobby), 99.99% (Pro), and 99.999% (Enterprise). Fast deploys are worth less when the platform underneath them has that kind of half-year.
Fly.io exited GPUs on July 31 — twelve days after Techsy's re-verification. The deprecation notice, foreshadowed by Fly's own "We Were Wrong About GPUs" post, means inference workloads have no Fly.io column at all now. The offsetting softening: Managed Postgres v2 entered beta in May 2026, so the "explicitly unmanaged" row is aging out — but beta is not GA, and the self-run Fly Postgres most teams still operate carries the same you-own-recovery warning it always has.
The seat wars ended, and one team size pays more
The April restructure's headline was simple: no seat fees. Pro at $25/mo and Scale at $499/mo include unlimited members, replacing Professional at $19/member/mo and Organization at $29/member/mo. The before-and-after, scored on the old Professional rate:
| Team size | Before (Professional, $19/seat) | After (Pro, $25 flat) |
|---|---|---|
| 1 engineer | $19/mo | $25/mo — pays more |
| 5 engineers | $95/mo | $25/mo |
| 20 engineers | $380/mo | $25/mo |
The 5- and 20-person rows are why Render says 75% of paying customers pay the same or less. The 1-person row is the under-reported member of the other 25%: a solo dev who was on Professional now pays $6/mo more for the workspace before any compute. (Teams needing SSO, SCIM, or HIPAA land on Scale at $499/mo — compare Organization's $29/seat, which crossed $499 at 18 seats — so large regulated teams roughly break even while small regulated teams pay up.)
Seats are now $0 of marginal cost on Railway Pro too ($20/workspace with unlimited members), so the seat line no longer separates the vendors. What separates them is what Render added to the invoice in exchange.
The new billing lines: bandwidth granularity and the domain tax
Killing seat fees removed the subsidy that used to fund generous bandwidth allowances, so Render repriced bandwidth the same day: overages moved from $30-per-100GB blocks to metered $0.15/GB, and the included allowances shrank to 5 GB (Hobby), 25 GB (Pro), and 1 TB (Scale), with private-link traffic at the much lower $0.03/GB. The unit rate equals the old block rate ($30/100 GB is $0.15/GB) — the change is granularity plus a smaller included base, and those two cut opposite ways.
Granularity helps the slightly-over. Under the old blocks, 30 GB of overage cost a full $30 block; metered, it costs $4.50. But past roughly one old block of overage, you pay the same rate on a smaller included base — pure increase. Worked on Pro's 25 GB allowance:
| Monthly egress | Render (over 25 GB @ $0.15) | Railway (@ $0.05/GB) | Fly.io NA/EU (@ $0.02/GB) |
|---|---|---|---|
| 100 GB | $11.25 | $5 | $2 |
| 500 GB | $71.25 | $25 | $10 |
| 1 TB | ~$150 | ~$51 | ~$20 |
Render's overage rate is 3x Railway's and 7.5x Fly.io's NA/EU rate — and this is the line that decides Techsy's Scale crown, where the hosted gap ($150–250 vs $350–500) is almost entirely bandwidth. (Fly.io's own tripwire, in its pricing docs: traffic in Africa or India bills at $0.12/GB, 6x its headline rate.)
The second new line is smaller per unit and stranger in shape: custom domains past the included count bill at $0.25/domain/month, with 15 included on Pro per Render's own migration notice. Fifteen is plenty for one product with a staging twin. It is nothing for a multi-tenant SaaS that issues a domain per customer:
| Tenant domains on Pro | Domain line |
|---|---|
| 15 (a product + staging + previews) | $0 |
| 25 (10 extra) | $2.50/mo |
| 115 (100 extra) | $25/mo — a second Pro fee |
| 515 (500 extra) | $125/mo — before a single container boots |
A 500-tenant platform pays $25 workspace + $125 domains + compute. Nobody's benchmark crown captures that, because benchmarks score one app, not five hundred hostnames. If you run multi-tenant custom domains, this line — not the compute ladder — is the first row of your Render bill to model.
The self-host column, with the ops labor priced in
Same stacks on owned Hetzner capacity, at post–June 15 repricing lists (USD prices Hetzner publishes directly, IPv4/VAT extra), whole stack per tier on one box:
| Same benchmark | Owned Hetzner box |
|---|---|
| Startup stack (~500 req/min) | ~$10/mo (CX33 shared, $9.99) |
| Growth stack (~2K req/min) | ~$18/mo (CX43 shared, $18.49) |
| Scale stack (10K+ req/min) | ~$35/mo (CX53-class cloud, $34.99; ~$70 as an app/data pair) |
| Egress at every row above | $0 (the 20 TB EU allowance swallows all three) |
| Seats, any team size | $0 |
| Custom domains, any count | $0 (your DNS, your certs) |
| Deploy speed | Buildpack git-push matches Railway-class DX — the bar a self-hosted PaaS must clear |
| Scale-to-zero | No savings available: flat hardware bills flat idle or busy |
| Regions | One box, one region — Fly.io's global row is unmatchable |
| Postgres | Self-run: backups, PITR, and 3 AM pages are yours |
The honest version of this column prices the last row. A ~$35/mo box fleet plus two on-call hours a month valued at a conservative $100/hr is ~$235/mo — at which point Render's managed Postgres premium is the cheapest on-call engineer you will ever hire, and the managed column wins for data-critical teams without platform practice.
But observe what the labor math does to the new billing lines: domains and seats cost $0 of ops labor at any count, and egress inside 20 TB costs $0 of attention. The ops burden concentrates entirely in Postgres and failover. Automate those two (declarative fleet + tested backup/restore), and the marginal ops cost of the next tenant, domain, or gigabyte is ~$0 — which is exactly where the hosted meters keep running. That is the self-host pitch in one sentence: the box wins 2–5x on steady, single-region workloads the day your Postgres automation is boring.
Verdict: pick by workload shape, not by crown
| Your workload | Honest answer |
|---|---|
| Hobby / idle-heavy (10% duty cycle) | Render's $0 free tier if you tolerate 30–60s cold starts; Fly.io scale-to-zero (~$1–2/mo) if you don't |
| Steady, single-region, Startup tier and up | The box: 2–5x under every hosted number |
| Global / latency-sensitive | Fly.io's 18 regions — neither the box nor the single-region vendors match it |
| Multi-tenant, domain-heavy | Model Render's $0.25/domain line first; the box charges $0 per hostname |
| Data-critical with no ops practice | Render's managed Postgres — the premium is an on-call hire, not a tax |
Techsy's July re-verification holds up well in October: the benchmarks stuck, the tier ranges scan, and the crowns survive. What changed is all on the invoice — Render's flat seats, metered bandwidth, and per-domain line — plus one exit (Fly.io GPUs) and one still-experimental asterisk (Railway HA). Score your workload's shape against the rows above before you score vendors against each other, and add the fourth column before you sign: the meter you stop paying is worth more than the crown you pick.
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.



