Skip to main content

BYOC After Heroku Sustain Mode: What AZIN, Porter, Flightcontrol, and Northflank Really Cost Versus Owning the Whole PaaS

11 min readDora NodaDora Noda
Share
On this page

On February 6, 2026, Salesforce put Heroku into sustain mode: no new features, maintenance and security patches only, and no new enterprise contracts. Sixteen years after the $212 million acquisition, the platform that taught a generation to git push heroku main is done evolving. Your apps keep running, but every month you stay, the runtime versions, security posture, and ecosystem support drift a little further behind.

The exit guides arrived fast. The sharpest one, Hidde's "Heroku Is in Sustain Mode" guide from March, splits the decision three ways for teams that still want PaaS-style deploys: jump to another shared PaaS (Railway, Render) for the fastest move, adopt BYOC — bring your own cloud — to own your infrastructure and never be stranded again, or self-host the whole thing on your own metal. The BYOC middle is the interesting claim. It promises the push-to-deploy experience with the workloads living in your AWS or GCP account, on standard resources that survive even if the vendor doesn't.

This post prices that promise. What does the middle actually cost per month, what does it genuinely buy you over both ends, and what vendor dependency quietly survives the move?

The receipt: what the middle actually costs​

Take the workload a typical Heroku exiter runs: one web service around 2 vCPU and 4 GB RAM, plus managed Postgres and Redis. Here is what that shape costs across the three options, using each vendor's published pricing.

PlatformModelMonthly cost for web + Postgres + Redis
Heroku (legacy baseline)Shared PaaS, sustain mode~$85–100 minimum for production; Eco starts at $5
RenderShared PaaS~$24–60 (web $7–25, Postgres ~$6–20, Key Value ~$10–15)
PorterBYOC on EKS/GKE/AKS~$175–225 (platform ~$50 + AWS: EKS $73 + nodes)
FlightcontrolBYOC on ECS~$156 solo (free tier) or ~$253 team (Starter $97 + AWS ~$156)
NorthflankBYOC on 6 cloudsCloud cost + a percentage of cloud spend (2 vCPU/4 GB reference: $48 on Northflank cloud)
AZINBYOC on GKE AutopilotGCP usage (~$45–50 Autopilot + Cloud SQL) + platform fee
Self-hosted on HetznerYour box, your PaaS€5–37 ($6–43): one CX23 cloud box or a 64 GB dedicated server

The numbers come from the vendors' own pages. Porter's pricing is metered on requested app resources — $13 per vCPU and $6 per GB of RAM per month — so 2 vCPU and 4 GB is $50 in platform fees before AWS bills you for the EKS control plane ($0.10/hour, $73/month) and the nodes underneath. That reconciles almost exactly with Hidde's "$225/month minimum on AWS" for Porter: the Kubernetes substrate has a floor, and EKS plus two small nodes is most of it.

Flightcontrol's page is unusually transparent about the AWS side: Fargate at $29/vCPU and $3.20/GB, a NAT gateway at $32/month, a load balancer around $17, RDS from $12, and ElastiCache-style Redis from $24. Add it up for our shape and the AWS portion alone is roughly $156 — before Flightcontrol's own fee, which is $0 for a single user, $97/month on Starter (5 services included, then $20/service), or $397/month on Business. The solo-dev and five-person-team prices for the same infrastructure differ by 60 percent, which is exactly why a single "BYOC costs X" number would lie.

Northflank doesn't publish a flat BYOC fee; it takes consumption-based pricing on its own cloud (2 vCPU/4 GB is $48/month on their nf-compute-200 plan) and a percentage of your cloud spend when it deploys into your accounts across six providers. AZIN's pitch, per Hidde's guide, is GCP BYOC via GKE Autopilot with no Kubernetes knowledge required — Autopilot's first cluster is free and you pay per pod, on the order of $45–50/month in pod charges for this shape plus Cloud SQL, with AZIN's platform fee on top.

And the far end of the spectrum: a Hetzner CX23 cloud box (2 vCPU, 4 GB RAM, 40 GB NVMe, 20 TB of traffic) is about €5/month, and a dedicated AX41 with 64 GB of RAM and two 512 GB NVMe drives is about €37/month. App, Postgres, and Redis all fit on either. The hardware side of "own the whole PaaS" costs less than the NAT gateway in the Flightcontrol row.


What changes the math​

Three variables flip the ranking, so treat the table as one point on each curve, not a verdict.

Team size. Solo, the free tiers dominate: Flightcontrol is free for one user, Northflank offers BYOC on all plans including free, and Render has a free tier. The moment you add a second seat or a GitHub org, Flightcontrol jumps to $97/month and the shared-PaaS options start looking cheap again — until you count seats there too.

Service count. Flightcontrol bills per service card — servers, databases, caches — accumulated across environments, so two environments with three services each is six billable services against your included quota. Porter bills per resource-hour, which scales smoothly with size but never drops to zero. Northflank's percentage-of-spend scales with your cloud bill, which punishes waste and rewards small footprints. If your Heroku estate is one app and two addons, these differences are noise; at ten services across staging and production, they pick the winner.

How much substrate you were already paying for. BYOC's dirty secret is that the cloud underneath is most of the bill. Porter's $50 platform fee is the minority partner to ~$150+ of AWS. If your team already runs an EKS cluster or a VPC with a NAT gateway for other reasons, BYOC's marginal cost collapses to just the platform fee — the middle gets dramatically cheaper when the floor is already paid for. If BYOC is your first AWS bill, budget the floor.

What BYOC actually buys you​

The core claim survives scrutiny: with BYOC, your data and your running workloads live in your cloud account as standard resources. If the BYOC vendor shut down tomorrow, your RDS databases, your GKE Autopilot workloads, your ECS services would keep running. You would lose the deployment dashboard, preview environments, and the git-push pipeline — but nobody's data is held hostage in a vendor's VPC, and every resource is operable with stock aws, gcloud, or kubectl tooling. That is a categorically better failure mode than a shared PaaS shutting down or degrading, where the failure mode is "migrate everything under time pressure," which is precisely the position Heroku just put its remaining customers in.

The second thing it buys is compliance surface. Data residency, region pinning, and audit stories are all simpler when the data plane is your account in your region — Northflank's pitch about customer data staying in the customer's cloud account, region, and zone is the honest version of this. For teams handling customer data under GDPR or procurement questionnaires that ask "where does the data live," BYOC answers in one sentence.

The third is cloud-commitment arbitrage: Porter and Flightcontrol both note you can burn AWS credits or committed spend against the underlying infrastructure. If your startup has $100k in AWS Activate credits, BYOC lets PaaS-style deploys ride on money that's already free, while shared-PaaS spend can't touch it.

What the middle still rents from a vendor​

Here is the part the BYOC pitch soft-pedals: you own the data plane, but you rent the control plane. Every deploy, rollback, preview environment, log tail, and autoscaling decision flows through the vendor's operated service. If the vendor has an outage, you can't ship.

If the vendor triples prices, your migration is easier than a Heroku exit — the workloads are already standard resources — but your deployment pipeline, environment parity, and team workflow still have to move. "Never be stranded again" is true for your data and misleading for your shipping cadence.

And vendors move. At the time of writing, Flightcontrol's own pricing page carries a banner announcing Ravion as its successor product — the company is mid-transition, and customers are along for the ride. More starkly, the entire azin.run domain currently redirects to boxd.sh, a per-second-billed VM workspace product with no BYOC or Heroku-migration offering at its own URL.

The GCP Autopilot BYOC product Hidde described in March is, for now, unreachable where he pointed. Neither of these is a shutdown or a scandal. That is exactly the point: ordinary vendor motion — rebrands, pivots, successions — is the dependency you keep. Your RDS instances survive it. Your deploy pipeline does not automatically.

There is also release-cadence exposure in the other direction. BYOC vendors abstract EKS, ECS, GKE, and Cloud SQL versions behind their supported matrix. When AWS deprecates an ECS agent version or GCP changes Autopilot behavior, you wait on the vendor's supported upgrade path, same as any managed platform — with the added wrinkle that the infrastructure is yours, so the blast radius of a botched vendor-driven upgrade lands in your account, on your bill, at your incident review.

None of this makes BYOC a bad deal. It makes it a specific deal: you trade the shared-PaaS risk (stranded workloads, stranded data) for control-plane tenancy (stranded workflow). Price it accordingly — the platform fee is rent on your shipping ability, not just a dashboard subscription.

The far end: the only vendor is the metal​

The self-hosted end of Hidde's split — Coolify (50k+ GitHub stars, 280+ one-click services), Kamal, Dokku on a VPS — deserves its honest accounting too. The hardware math is absurdly favorable: that €5–37/month Hetzner range covers the entire workload with headroom, and there is no per-seat fee, no percentage of cloud spend, no EKS control-plane tax. For a side project or a small team, the annual infrastructure bill can be less than one month of a BYOC team plan.

What you pay instead is time and surface area. Managed Postgres becomes Postgres-in-a-container you back up. Preview environments become something you build or bolt on. Zero-downtime deploys, autoscaling, log retention, and 3 a.m. disk-full pages are all yours.

Hidde's guide is blunt about this — self-hosting is "not great if you want managed databases, auto-scaling, or zero-downtime deploys out of the box" — and the honest version adds: the break-even is measured in engineering hours, not euros. If your team has no one who will own the box, the €32/month you save over Render can cost a weekend of downtime.

But notice what disappears entirely at this end: there is no control plane you rent. The deploy pipeline (Coolify on your server, Kamal over SSH from your laptop), the data, and the machines are all yours. The vendor-motion failure mode from the previous section cannot happen, because there is no vendor in the loop.

For teams whose Heroku lesson was "never depend on a platform company's roadmap again," this — not BYOC — is the literal reading of the lesson. BYOC halves the dependency. Self-hosting ends it.

Picking your exit​

Hidde's closing advice still holds, with one amendment. If you want the fastest migration with the least change, go Railway or Render — same model as Heroku, lowest learning curve, and accept that you've moved the risk, not removed it. If you want to own your infrastructure and stop worrying about stranded data, go BYOC — and go in knowing the platform fee is rent on your deploy pipeline, owed to a company that can rebrand, pivot, or be acquired. If you want the dependency gone at minimum cost and have someone to own the box, self-host on cheap metal.

The amendment: match the option to the lesson you actually learned. If Heroku sustain mode taught you "my data should live in my account," BYOC is the answer and the table above is your budget. If it taught you "no vendor should sit between my team and production," only the far end satisfies that — and the price is measured in weekends, not subscriptions. Either lesson beats the one option every guide agrees to avoid: staying on a platform that has formally stopped improving, and letting the technical debt compound monthly.

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

Check your move before you migrate

Free browser tools: check a render.yaml or your Render scripts against bex, or turn a Heroku app or docker-compose.yml into a draft render.yaml. Nothing you paste leaves your browser.

Open the migration tools