A friend of Tural Allahverdiyev's budgeted $20 a month for his Vercel Pro plan and opened a bill for $286. The culprit was a single 8 AM bot-traffic spike that blew past the 100K/month serverless-invocation cap. He spent the following weekend choosing between Fly.io, Railway, and a $5 droplet running a binary on systemd — the same weekend conversation indie developers have been having since Heroku entered sustaining-engineering mode in February 2026.
That anecdote opens Allahverdiyev's June 2026 teardown, which put the cheapest-to-most-expensive PaaS gap at roughly 5x. A month later, techsy.io re-checked every price, region count, and plan name across Railway, Render, and Fly.io on July 19, 2026 — with Render's April workspace restructure and Railway's March HA Postgres folded in. I took those same-date prices and recomputed one identical Node.js-plus-Postgres stack line by line. Here is the answer up front; the receipts for every row follow below.
| Railway | Render | Fly.io | Hetzner CX22 (self-hosted) | |
|---|---|---|---|---|
| Reference workload (100 GB egress, EU/US) | ~$37/mo | ~$30/mo | ~$12/mo | ~$5/mo |
| Same stack at 500 GB egress | ~$57/mo | ~$90/mo | ~$19/mo | ~$5/mo |
| Same stack served from Africa/India | ~$37/mo | ~$30/mo | ~$21/mo | ~$5/mo |
Three things jump out before we do any math. First, at modest traffic the managed spread is ~3x, not 5x — the 5x emerges once egress grows, which is exactly when teams stop watching the meter. Second, Fly.io nearly doubles when the audience moves continents while nobody else moves at all. Third, the flat-rate box does not move, ever. The rest of this post is about which line items do the moving.
The reference workload, defined so you can check my math
Comparisons lie most often in the workload definition, so here is mine: one Node.js API (0.5 vCPU, 512 MB–1 GB RAM, always on), one small Postgres (a few GB of data, 10 GB of provisioned volume), and 100 GB/month of public egress served to North America or Europe. No workers, no Redis, no preview environments — the smallest stack a real side-project SaaS actually runs. All prices are the July 2026 rate cards both sources verified: Railway's per-second usage rates, Render's post-restructure workspace plans, Fly.io's regional egress tiers plus its two new 2026 billing lines, and Hetzner's CX22 at roughly €4.49 (about $5) with 20 TB of included traffic.
The sensitivity cases in the table above change exactly one variable each: 500 GB of egress instead of 100, or the same 100 GB served from Fly.io's Africa/India region tier instead of the EU/US tier. Everything else stays fixed. If you disagree with my footprint assumptions, the per-unit rates in the next section let you redo the arithmetic for your own stack in minutes.
Railway: $37 of pure usage arithmetic
Railway bills $0.00000772 per vCPU-second (about $20 per vCPU-month) and $0.00000386 per GB-second (about $10 per GB-month), with volumes at $0.15/GB-month and egress at a flat $0.05/GB. The Hobby plan is a $5/month subscription that acts as a spending cap, and Pro is $20 per seat on top of usage. There is no free tier — Railway removed it in 2023 and replaced it with a one-time $5 trial credit.
Against the reference workload: the API (0.5 vCPU plus 1 GB RAM) costs about $10 plus $10, or $20. A small containerized Postgres at half that footprint adds roughly $10. Ten GB of volume adds $1.50, and 100 GB of egress at $0.05/GB adds $5. Total: about $36.50 in usage against the $5 Hobby plan, or roughly $37 out of pocket once the included credit washes the subscription.
Two caveats belong to Railway specifically. Its Postgres is still containerized with no point-in-time recovery and no read replicas on the default tier. The experimental one-click HA Postgres Railway shipped in March 2026 — a Patroni-managed cluster with etcd leader election and HAProxy routing — is gated behind a paid tier whose own changelog says not to trust it with production data yet. For a side project that is perfectly fine; for customer data it is the single biggest asterisk on Railway's bill.
Render: $30, and a step function hiding in the RAM slider
Render's Starter web service is $7/month (0.5 CPU, 512 MB) and Standard is $25/month (1 CPU, 2 GB). Managed Postgres starts around $6/month on the Basic tier, but storage now bills separately at $0.30/GB/month instead of being bundled the way it used to be. The April 23, 2026 restructure replaced per-seat team pricing ($19/member/month) with flat workspace plans — Hobby at $0, Pro at $25/month with unlimited seats, Scale at $499 — and cut included bandwidth to 5 GB, 25 GB, and 1,000 GB respectively, with a $0.15/GB overage beyond that. Legacy workspaces migrate automatically after August 1, 2026.
Against the reference workload on a free Hobby workspace: $7 for the Starter web service, $6 plus $3 of storage for Postgres, and 95 GB of egress overage at $0.15/GB, or $14.25. Total: about $30.25, call it ~$30.
Note what dominates: nearly half the bill is egress overage, a line item that was far more generous before April (the free allowance was cut from 100 GB to 5 GB in the replan). And note the step function: if the API needs 1 GB of RAM instead of 512 MB, there is no $12 middle tier — the web service jumps from $7 to $25 before a single extra request arrives. For a five-person team the restructure is genuinely good news ($25 flat instead of $95 in seats for the same preview environments), but for a bandwidth-heavy solo app the new overage meter is where Render's predictability starts to cost real money.
Fly.io: 21 in Johannesburg
Fly.io's per-component billing is the one developers complain needs a spreadsheet: Machines billed per second (a shared-cpu-1x with 512 MB runs about $3.30–3.90/month always on), volumes at $0.15/GB-month, and egress in three regional tiers — $0.02/GB in North America and Europe, $0.04/GB across Asia Pacific, Oceania, and South America, and $0.12/GB in Africa and India. The old $5/month free credit is gone for every organization created after October 2024, and January 2026 added a genuinely new line: volume snapshots at $0.08/GB-month with only the first 10 GB free, first billed on the February invoice. Inter-region private-network traffic started metering a month later.
Against the reference workload in the EU/US tier: two small Machines (API plus Postgres) at roughly $3.50 each, $1.50 of volume, about $0.80 of snapshot retention past the free allowance, and $2 of egress. Total: roughly $11–12. The cheapest managed bill on this page, by a distance — as long as the audience stays where the $0.02 rate applies.
Move the audience and the story flips: the same 100 GB at the Africa/India tier costs $12 instead of $2, taking the total to ~$21 and nearly doubling the bill on a variable the pricing page's headline never mentions. Fly.io is also explicit that its Postgres is not a managed database — if it crashes from memory or disk pressure, recovery is yours — which is why so many Fly.io users pair it with an external managed database and pay a second bill techsy.io's comparison does not count.
Where the meter moves first
Three mechanisms do most of the damage across all three platforms, in order of how early they bite.
First, per-service multiplication. Techsy.io's own tier table shows it: going from one web service plus a database to web plus worker plus Postgres plus Redis takes Railway from ~$5 to ~$25–40, Render from $0 to ~$50–60, and Fly.io from ~$4–6 to ~$20–35. Every service you add re-pays the compute baseline in full. This is the meter that moves first because it moves the day you add a worker, months before traffic grows.
Second, egress volume. Re-run the reference stack at 500 GB and Railway climbs to ~$57 (400 extra GB at $0.05), Render to ~$90 (495 extra GB at $0.15 against a 5 GB allowance), and Fly.io to just ~$19 (400 extra GB at $0.02). The managed spread stretches from ~3x to nearly 5x — the gap Allahverdiyev reported — and Render's overage rate, not its $7 headline instance, becomes the entire story. If your app serves images, video, or chunky API responses, the egress row is your bill; everything above it is rounding.
Third, egress geography, which only Fly.io charges for. The $0.02-to-$0.12 regional split is a 6x multiplier applied silently by user location, and the new 2026 lines compound it: snapshot storage grows with every retained backup whether traffic exists or not, and cross-region replication traffic now meters in both directions. None of these appear in the "cheapest at scale" headline — they surface on the second invoice.
What it collapses to on flat hardware
A Hetzner CX22 — 2 vCPU, 4 GB RAM, 40 GB NVMe — costs roughly €4.49 a month, about $5, with 20 TB of included traffic. The reference workload's 100 GB is half of one percent of that allowance; the 500 GB sensitivity case is two and a half percent. The total is ~$5 in all three rows of the opening table because there is no per-GB, per-snapshot, or per-region meter to move. The whole stack — API, worker, Postgres, Redis, the entire sensitivity analysis — fits on the one box with headroom left over.
The honest caveat, stated plainly: the $5 covers hardware, not operations. Somebody patches the OS, runs Postgres backups, rotates TLS certificates, and wakes up when the disk fills — on a managed platform that labor is the product. The self-hosting argument is not that operations cost zero; it is that the operations cost is roughly fixed while the metered bill compounds with traffic, services, and regions. A Cluster API-managed fleet is the mechanism that keeps the fixed side fixed as machines multiply: declarative node lifecycle instead of hand-fed servers, so the second and tenth boxes cost the same attention as the first. Past the breakeven — somewhere around the 500 GB row for most stacks — the metered platforms are charging you a growing premium for labor you could have amortized flat.
Which platform wins, by stage
For a hobby project that idles most of the day, Railway's pure usage billing is still the cheapest way to pay for nothing — techsy.io's verdict holds, with the Postgres asterisk attached. For a production SaaS whose data layer matters, Render's managed Postgres with point-in-time recovery and flat, predictable instances is the strongest pick, provided you model the $0.15 egress overage before the images get heavy. For high-traffic apps serving North America and Europe, Fly.io's $0.02 egress is genuinely the cheapest managed byte on this page — provided the audience never drifts into the $0.12 tier. And for the workload that outgrows all three meters at once, the answer is the one this entire genre of comparison keeps rediscovering: a flat €4.49 box that does not care how many gigabytes you served.
That migration — from someone else's meter to your own machines without relearning deployment — is the gap self-hosted PaaS exists to close.
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.



