Salesforce put Heroku into sustaining engineering mode in February 2026: security and stability only, no new features, no new Enterprise contracts. Every Heroku-alternatives roundup since then has priced the same generic dyno-parity question. Suga's September 15, 2026 guide asked a narrower, better one: what do the alternatives cost for Docker workloads specifically, with pricing verified that day?
I took the guide's verified rates and priced all seven platforms — Suga, Railway, Render, Northflank, Fly.io, DigitalOcean App Platform, and Google Cloud Run — on one identical stack, then added the two rows every roundup omits: the Heroku baseline and the same containers on one flat Hetzner box. Here is the answer up front.
The same stack, seven bills
The reference stack is a typical small-production setup: a web container (0.5 vCPU, 512 MB), a worker (0.5 vCPU, 512 MB), Postgres (0.25 vCPU, 1 GB RAM, 10 GB disk), Redis (0.125 vCPU, 256 MB, 2 GB disk), and 50 GB of monthly egress, running all 730 hours. All rates are the guide's September 15, 2026 verified numbers.
| Platform | Monthly total | What the number assumes |
|---|---|---|
| Heroku (baseline) | $115 | 2× Standard-1X ($25 each) + Standard-0 Postgres ($50) + Premium-0 Key-Value ($15), per the guide |
| Suga | ~$66 | Pro seat ($20, incl. $20 org credits) + usage at $0.05/vCPU-hr, $0.0054/GB-hr, $0.12/GB egress |
| Railway | ~$60 | Pro workspace ($20, incl. $20 credits) + usage at ~$0.028/vCPU-hr, ~$0.014/GB-hr, $0.05/GB egress, $0.50/GB-mo volumes |
| Render | ~$30 | Starter web ($7) + Starter worker ($7) + Postgres Basic ($6) + Key Value ($10); egress inside the included allowance |
| Northflank | ~$32 | Compute at $0.01667/vCPU-hr + $0.00833/GB-hr with Postgres/Redis as in-project services |
| Fly.io | ~$18 / ~$60 | Self-hosted Postgres/Redis on shared-cpu-1x machines + $0.15/GB-mo volumes + $0.02/GB egress — or ~$60 with Managed Postgres Basic ($38) |
| DigitalOcean App Platform | ~$24 | Basic web ($5) + basic worker ($5) + managed Postgres dev ($7) + managed Valkey dev (~$7); transfer inside the allowance |
| Google Cloud Run | ~$55 compute, ~$100+ all-in | Instance-based compute ($0.0648/vCPU-hr, $0.0072/GiB-hr) + Cloud SQL + Memorystore at GCP list prices |
| Hetzner (flat box) | ~$5 | One 2 vCPU / 4 GB / 40 GB cloud VM (~€4.51/mo) running all four containers; 20 TB included traffic |
Three things jump out. First, the managed spread is 6×, from ~$18 to ~$115, for identical containers — the platform model matters more than the workload size. Second, the cheapest managed rows (Fly.io self-hosted, DigitalOcean, Render) all keep databases inside the platform's own billing, while the most expensive rows push state to separately-metered services. Third, the flat box is an order of magnitude cheaper than everything except the cheapest self-hosted rows, which is exactly why the last section of this post exists.
What the Docker-workload lens changes
Most 2026 roundups score Heroku parity: buildpacks, addons, review apps. Filtering for Docker workloads instead — Dockerfile-native deploy, image/registry deploy, per-container billing — reorders the shortlist in three visible ways.
Cloud Run enters the conversation at all. On a dyno-parity lens it is a non-answer: no buildpacks, no review apps, custom-domain mapping still in Preview with Google recommending an external load balancer for production. On a Docker lens it is a first-class runtime with revision-based traffic splitting and per-request scaling — provided your state already lives on Google Cloud.
Buildpack-first platforms drop a rank. DigitalOcean App Platform is explicitly buildpack-first, "like Heroku," with Dockerfiles as the escape hatch for less-common runtimes. That is fine if your containers are an exception; it is friction if every deploy is a Dockerfile.
And the infrastructure-shaped platforms rise. Northflank (Kubernetes-backed, per-millicore sizing, GPU workloads, BYOC into your own AWS/GCP/Azure on self-service plans) and Fly.io (Firecracker microVMs, native TCP/UDP, 18 regions) both look overcomplicated next to Heroku — until the workload is a container that needs a raw port, a GPU, or a region Heroku never served. Heroku runs HTTP-only, on AWS-only, in US/EU-only on standard plans; the guide treats those three "only"s as the migration trigger, and Docker is what makes the trigger pullable without a rewrite.
Platform notes: where each number comes from
Suga (~$66). The $20 Pro seat includes $20 in org-wide hosting credits, and the reference stack burns about $66 in usage — roughly $50 in vCPU, $9 in memory, $1 in disk, $6 in egress — so one seat plus usage nets ~$66 ($20 seat + ~$46 usage after the credit). The differentiators are structural, not price: multi-service environments on one private network, cross-container variable references, environment forking, and an MCP server that lets an agent stage infrastructure changes as a reviewable draft.
Railway (~$60). Nearly the same shape as Suga — $20 Pro workspace with $20 in credits — but cheaper unit rates (~$0.028/vCPU-hr, ~$0.014/GB-hr, $0.05/GB egress) offset by pricier volumes ($0.50/GB-mo). Postgres, Redis, and TCP-proxy support for non-HTTP workloads all live in the same project. Multi-region is manual per environment, and there is no BYOC path.
Render (~$30). Fixed tiers instead of meters: two $7 Starters, $6 Postgres, $10 Key Value. Render is the closest direct mapping of Heroku's web/worker/scheduler split, with render.yaml Blueprints and per-PR preview environments on Pro workspaces. The caveat the guide flags is architectural: disk-attached services pin to one replica with no zero-downtime deploys.
Northflank (~$32). Pure consumption billing ($0.01667/vCPU-hr, $0.00833/GB-hr, per-second) with databases as in-project services lands the reference stack around $32. The standout features are per-PR environments with forkable database copies and BYOC on self-service plans — the only platform here besides Suga's enterprise tier that lets the workload leave the vendor's cloud account.
Fly.io (~$18 / ~$60). The fork in the row is the point. Four shared-cpu-1x machines with self-hosted Postgres/Redis, $0.15/GB-mo volumes, and $0.02/GB NA/EU egress total ~$18 — the cheapest managed row. Swap self-hosted Postgres for Managed Postgres Basic ($38 + $0.28/GB) and the row roughly triples. Fly gives you real VMs and 18 regions; it also makes Postgres setup a manual step and TLS/domain automation less turnkey than the PaaS-shaped options.
DigitalOcean (~$24). Two $5 basic containers plus $7 managed Postgres and ~$7 managed Valkey. The pitch is ecosystem, not price: managed databases, VPCs, Spaces, and load balancers in the same account over private networking, with autoscaling on CPU/memory. The single-app dashboard and buildpack-first flow show its Heroku-clone roots.
Cloud Run (~$100+ all-in). Compute itself is mid-pack at ~$55 on instance-based billing. The bill inflates on the stateful side: Cloud SQL and Memorystore are full GCP services at GCP prices, and per-PR previews live in separate Google Cloud tooling. This is the "cheap runtime, expensive surroundings" row — sensible only if your data already lives on Google Cloud.
The two variables that move every number
A single-quoted total hides the two inputs that actually decide bills: egress and seats. Both are in the guide's verified rates, so both can be recomputed instead of hand-waved.
Egress. At the reference 50 GB, egress is $1–6 everywhere. At 500 GB it reorders the table. Suga's $0.12/GB adds ~$54 (total ~$120, the most expensive row); Railway's $0.05/GB adds $23 ($82); Fly.io's $0.02–0.12/GB adds $9–54 depending on region. Render, DigitalOcean, and Hetzner stay flat inside their included allowances. If your workload serves images, video, or large API payloads, price egress first and compute second — the guide's cheapest compute rows carry the steepest per-GB rates.
Seats and platform fees. Suga charges $20 per seat; Railway charges $20 per workspace. At one seat the two rows are within dollars of each other (~$66 vs ~$60). At five engineers, Suga's seat line is $100 before usage while Railway's workspace line is still $20 — check Suga's pricing page for how credits pool across seats before extrapolating, but the structural point holds: per-seat pricing taxes team growth, per-workspace pricing taxes only consumption. Render, Northflank, Fly.io, DigitalOcean, and Cloud Run have no seat multiplier on this stack at all.
The flat-box control group
The same four containers fit comfortably on a 2 vCPU / 4 GB Hetzner cloud VM at ~€4.51/mo (about $5), with 20 TB of included traffic making the egress sensitivity section irrelevant. Against the $115 Heroku baseline that is a 23× reduction; against the cheapest managed row it is still 3–4×. Nothing in the managed market touches flat compute on price, before or after Hetzner's April 2026 increases.
The honest tradeoff is operations, not hardware. The $5 buys the machine; Postgres backups, Redis persistence, TLS renewal, zero-downtime deploys, and per-PR environments are yours to build — or yours to get from a self-hosted layer. That is a solved problem rather than a research project: Coolify or Dokploy on the same box restores push-to-deploy and TLS, and a Cluster-API-based platform restores declarative machine lifecycle when one box becomes a fleet. Price the box at $5 plus the afternoon it takes to set up, and compare that against the managed rows' $220–1,380 yearly totals.
Verdict: a shortlist by constraint
There is no single winner, which is the guide's own conclusion — but the Docker lens plus real totals makes the shortlist mechanical:
- Cheapest managed, hands-on: Fly.io self-hosted (~$18) if you accept manual Postgres and VM-shaped operations.
- Cheapest managed, hands-off: DigitalOcean (
$24) or Render ($30) with managed databases and Heroku-familiar workflows. - Least migration friction: Suga (~$66), the closest grouping model to Heroku apps-plus-addons, with an MCP-driven migration path that stages your Heroku Procfile and config vars as a reviewable draft.
- TCP/UDP, GPUs, or many regions: Northflank (~$32) or Fly.io — the workloads Heroku structurally cannot run.
- Already on Google Cloud or DigitalOcean: Cloud Run or App Platform respectively; leaving your data's cloud to chase cheaper compute is a false saving.
- Flat cost and full control: the Hetzner box (~$5) plus a self-hosted deploy layer.
One migration note applies to every row: stateless cutover is a DNS swap with both platforms running, but Postgres and Redis start empty at the destination — export, restore, verify row counts, then final-sync with writes paused. Every platform's migration guide says this; every rushed migration learns it.
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.



