Seven months ago, Heroku's chief product officer published a short post titled "An Update on Heroku." The key sentence was plain: Heroku was moving to a sustaining engineering model — stability, security, reliability, and support, with no new features and no new Enterprise contracts for new customers. The comparison wave arrived within days and never really stopped: Encore's "Heroku Is Gone, Here's Where Developers Are Going," Back4App's ranked alternatives, benchmark shootouts pitting Railway against Render against Fly.io.
Seven months later, that wave has converged into a settled consensus, and this post audits the consensus itself. Every major guide routes leavers to the same three managed defaults — Render for the closest Heroku-style replacement, Railway for deploy speed, Fly.io for edge — and every guide's comparison table shares one missing row: nobody prices self-hosting as an equal option. Here is that row, up front: a small-production Heroku stack billing roughly $70 a month, and a typical team stack billing roughly $215, map to about a tenth of one $50-a-month flat box, database included. The traffic finding below is triangulated from three independent signals, because no vendor publishes Heroku-refugee counts and anyone claiming a census is inventing one.
What the freeze settled
Three facts, briefly, since the freeze itself is well covered elsewhere. First, the February 6 terms: the platform stays running for existing customers, but active development has stopped and new Enterprise sales are renewals only. Second, the price list froze with the platform — Standard-1X dynos still bill $25 a month, exactly as when Heroku promised a future to go with the present. Third, leaving is now a routine procurement decision rather than breaking news, which is precisely why the guides deserve an audit: routine decisions get made from comparison tables, and comparison tables encode their authors' blind spots.
If you need the migration-decision framework or the full five-vendor price ledger rather than the guide audit, those already exist: the freeze-six-months-in verdict, the diaspora decision tree, and the September price ledger. This post asks a narrower question: what do the guides that made the decision for most teams actually say, and what do they all omit?
The guide-routing map: four guides, three destinations
Read the four most-cited guides side by side and the routing is nearly identical. The table below names each guide's default answer and, crucially, how it treats the self-hosted alternative.
| Guide | Default routing | How it treats self-hosting |
|---|---|---|
| Encore, "Heroku Is Gone" (Feb 8) | Encore-on-your-AWS/GCP first; then Render (fastest migration), Fly.io (edge), Railway (DX, unlimited seats) | Present as a fifth row — Coolify, Dokku, Dokploy on a Hetzner or DigitalOcean VPS — but dismissed for production ("high availability takes significantly more effort") and never priced |
| Back4App, ranked alternatives (Feb 2026) | Ten ranked picks led by Back4App, Sevalla, Render, Fly.io, and Railway | Coolify sits at #9 of 10: a token slot in a managed ranking, not a worked alternative |
| techsy.io benchmarks (2026) | Three-way Railway-vs-Render-vs-Fly.io shootout | No self-hosted lane; the benchmark frame admits only metered vendors |
| thesoftwarescout four-way shootout (2026) | Heroku vs Railway vs Render vs Fly.io feature matrix | The matrix has four managed columns; there is no fifth column to fill |
Two patterns jump out. First, every guide's comparison set is managed-only by construction: a benchmark of three metered vendors cannot conclude that a flat box wins, and a feature matrix with four managed columns cannot grow a fifth. Second, the one guide that does name self-hosting — Encore, to its credit — treats it as the "lowest possible cost" row for side projects while routing every production-shaped need to a managed bill, without ever showing the numbers that would let a reader check that dismissal. That is the gap the rest of this post fills: not another opinion about self-hosting, but the missing row, worked.
Where the leavers went: triangulation, not a census
No vendor publishes "ex-Heroku signups" as a line item, so treat any precise market-share claim with suspicion. But three independent signals point the same way, and their convergence is the finding.
Signal 1: the guides agree with each other. As the table above shows, four guides written by four different parties — a vendor (Encore), an alternative-rankings site (Back4App), a benchmark shop (techsy.io), and a comparison site (thesoftwarescout) — all land on Render as the closest-DX default, Railway as the deploy-speed pick, and Fly.io as the edge pick. Guide consensus is not traffic data, but when every signpost points down the same three roads, the traffic follows the signposts.
Signal 2: the vendors repriced like they were competing for refugees. Render killed per-seat pricing in 2026 — ten seats went from roughly $190 in fees to a $25 flat workspace charge — while adding bandwidth metering, the exact shape of a vendor optimizing its funnel for incoming Heroku teams rather than its installed base. Fly.io launched MPG, a managed Postgres product aimed squarely at the Heroku Postgres refugees its own reliability reputation had been losing. Railway flattened its team pricing to a $20 workspace fee over usage.
Below the big three, a second tier — Sevalla, Koyeb, Qovery — spent 2026 explicitly positioning on Heroku-shaped workloads and database pricing. Vendors do not all replan pricing in the same twelve-month window by coincidence; they do it when a large, specific cohort is shopping.
Signal 3: independent community lists converged on the same default. Separate from vendor-authored guides, community-maintained Heroku-alternative lists spent 2026 independently landing Render as the closest replacement for Heroku-shaped teams, with Railway and Fly.io as the standard second opinions. When the vendor guides and the community lists agree, the three-lane split — Render for DX continuity, Railway for speed, Fly.io for edge — is as close to "where the traffic went" as public evidence gets.
The honest summary: Render absorbed the teams that wanted Heroku with a future, Railway absorbed the teams that valued iteration speed over familiarity, and Fly.io absorbed the latency-sensitive minority. The fourth lane — owned hardware under a git-push layer — absorbed the teams that did their own math, because no guide did it for them.
The missing row, priced: dyno-hours as box utilization
Heroku bills in dyno-hours — one dyno running for one month is 720 dyno-hours — and the frozen price list makes the units legible: Standard-1X (512 MB RAM, 1x CPU share) at $25, Standard-2X (1 GB) at $50, Performance-M (2.5 GB) at $250, Performance-L (14 GB) at $500, with Postgres from $5 (Mini) through $50 (Standard-0) and Redis from $15. Translate those units onto one AX41-class dedicated box — 6 cores, 64 GB RAM, NVMe, roughly $45–55 a month — and two representative stacks tell the story.
| Heroku bill | On-box footprint (RAM) | Share of one ~$50 box | |
|---|---|---|---|
| Small production: 2× Standard-1X ($50) + Postgres Mini ($5) + Redis Mini ($15) | ~$70/mo | ~1 GB dynos + ~1 GB data + ~2 GB overhead ≈ 4 GB | ~6% |
| Typical team: 2× Standard-2X web + 1× 2X worker ($150) + Postgres Standard-0 ($50) + Redis ($15) | ~$215/mo | ~3 GB dynos + ~2.5 GB data + ~2 GB overhead ≈ 7.5 GB | ~12% |
RAM is the hard number because Heroku documents dyno memory; CPU needs a stated assumption, because Heroku has never published the core fraction behind a "CPU share." Take the generous one — a 2X dyno equals a full vCPU — and the $215 stack is still roughly four vCPU against six dedicated cores: nothing is close to binding. The September ledger priced this same shape at roughly $50 self-hosted against $69–122 managed; the utilization framing says the same thing from the other direction. Your Heroku bill is not buying a lot of computer. It is buying a little computer with a fully managed data layer and zero ops — which is a fine trade until someone shows you the tenth-of-a-box math and you realize how much of the invoice is the trade, not the computer.
Three honest caveats, because a missing row that hides its costs is just another biased guide:
- Managed data has value. Self-run Postgres ships no point-in-time recovery or managed failover until you build it, and regulated teams must price the compliance paperwork a managed platform bundles — that rebuild cost is real.
- One box is not HA. Two boxes double the hardware line to roughly $100 — still under the $215 stack — but the failover is yours to operate.
- The anchor repriced too. Hetzner's June 15 increase pushed cloud CCX instances up 2–3x, which is why this row anchors on AX-class dedicated rather than cloud VMs.
And the shape cuts both ways: spiky-to-zero side projects genuinely favor metering, where Railway and Fly.io beat any always-on box. The fourth option wins on steady, predictable utilization — which, notably, is exactly what a dyno-hours bill proves you already have.
The decision, seven months in
If you need Heroku-shaped DX tomorrow with no ops hires, take the guides' advice: Render is the consensus default for a reason, Railway if speed matters more than familiarity, Fly.io if your users are global. But if your dyno-hours bill shows steady utilization — the same formation, month after month — price the row the guides skipped before you sign a fourth managed bill. A month of dyno-hours is a utilization forecast wearing an invoice costume; read it as one, and the box usually wins.
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.



