Skip to main content

Northflank BYOC vs Owning Hetzner Boxes: What Bring-Your-Own-Cloud Actually Saves

10 min readDora NodaDora Noda
Share
On this page

Northflank's pitch for bring-your-own-cloud is the most seductive sentence in PaaS pricing right now: keep our control plane, run it against your cloud account, and stop paying our markup on compute. No per-service tax, your committed-use discounts intact, your startup credits still spendable. It sounds like getting the PaaS experience at cloud list price — so close to free money that it deserves a spreadsheet before it gets your signature.

So here is the spreadsheet. The same always-on stack — an API service, a background worker, Postgres, 20 GB of disk, 100 GB of monthly egress — priced five ways: Render's flat tiers, Railway's metered Pro plan, Northflank's own managed cloud, Northflank BYOC on AWS at list price, and one flat-rate Hetzner box managed by Cluster API. The headline result: owned hardware is still roughly half the price of the cheapest hosted option, BYOC at list price is the most expensive row in the table, and the ranking flips completely the moment your situation stops looking average. The rest of this post is about exactly when each one wins.

The workload we are pricing

Comparisons like this live or die on their inputs, so here they are up front — a deliberately boring early-SaaS stack, sized the way most small production apps actually look:

  • API service: 1 vCPU, 2 GB RAM, always on
  • Background worker: 1 vCPU, 2 GB RAM, always on
  • Postgres: roughly 1 vCPU, 2 GB RAM, 20 GB of persistent disk
  • Egress: 100 GB per month
  • Utilization: 100 percent — always-on services, no scale-to-zero (we will relax this later, and it matters a lot)

Every number below traces to these inputs plus each vendor's published list prices. No annual prepay, no credits, no negotiated discounts — yet. Discounts are BYOC's home turf, so they get their own section.

The price table: one stack, five bills

OptionThe mathTotal/mo
Render (flat tiers)2x Standard web at $25 + Postgres Standard at $20 + egress $0 (inside the included 100 GB)~$70
Railway Pro (metered, 1 seat)$20 seat incl. $20 credit; usage 2 vCPU x $20 + 6 GB RAM x $10 + 20 GB vol x $0.15 + 100 GB egress x $0.05 = $108, minus credit~$108
Northflank managed cloud3x nf-compute-100-2 (1 vCPU / 2 GB) at $24 + 20 GB disk x $0.15 + 100 GB egress x $0.06~$81
Northflank BYOC on AWS (list)t3.large ~$61 + RDS db.t3.medium ~$55 + 20 GB EBS ~$2 + 100 GB egress x $0.09, plus the Northflank BYOC platform fee~$127 + fee
Hetzner CCX23 under Cluster API4 dedicated vCPU, 16 GB RAM, 160 GB NVMe at ~€37.47; 20 TB of traffic included~$41

Sources for the unit rates: Northflank's pricing page ($0.01667/vCPU-hr, $0.00833/GB-hr, $0.06/GB egress, $0.15/GB-mo disk) and its Railway comparison (Railway at $20/vCPU, $10/GB RAM, $0.05/GB egress); Render's tier list ($25 Standard web, $20 Postgres Standard) plus staff confirmation that 100 GB of bandwidth is included per account; AWS list prices for the BYOC row; Hetzner's cloud price list.

Read the table left to right and three things jump out. First, the Hetzner box is the cheapest row at roughly $41 — about 40 percent below Render, half of Northflank managed, and just over a third of metered Railway at full utilization. There is no per-service markup, no per-GB egress meter, and 160 GB of NVMe is just included. Second, BYOC at list price is the most expensive row, not the cheapest: you are paying retail AWS rates plus a platform fee for the privilege.

Third, the spread from the cheapest hosted row (Render, ~$70) to the priciest row (BYOC at list, ~$127) is about $57 a month on this small a stack — real money, but small enough that the rest of this post (discounts, workload shape, ops time) can overturn it. That is the honest version of the BYOC story: the middle path is not automatically the cheap path. It is the path whose price depends most on who you are.

What BYOC removes from the bill — and what it keeps

The short version: BYOC removes the PaaS compute markup and hands your discounts back. The itemized version is worth spelling out, because "your cloud account" cuts both ways.

What BYOC actually removes:

  • Per-service compute markup. On Northflank's managed cloud, our stack's compute alone is $72 by the meter. In your own AWS account, equivalent EC2 capacity lists around $61 — and that is before any discount. The platform stops taxing every vCPU-hour.
  • Stranded credits and commitments. Startup programs hand out tens or hundreds of thousands in cloud credits, and committed-use or savings-plan discounts cut compute 40 to 70 percent. None of that is spendable on Render or Railway. BYOC makes your credits billable again — a team sitting on $100k of AWS Activate credits can run this stack at effectively $0 in infra until the credits run out.
  • The "replatform to save" trap. Teams that outgrow PaaS unit economics usually face a rewrite onto raw cloud. BYOC lets you keep the deploy-from-git workflow while the underlying bill behaves like a cloud bill.

What BYOC keeps — the meter still runs:

  • The cloud meter, all of it. EC2, RDS, EBS, and egress at $0.09/GB are all still metered per unit. At list price our BYOC row totals ~$127 before the platform fee — more than any hosted PaaS row. BYOC inherits cloud pricing's shape, including its sharp edges.
  • A platform fee on top. Northflank charges for BYOC beyond what AWS bills you — reporting describes it as a cut of cloud spend. So the row reads "cloud bill plus fee," and you should confirm the current fee on the pricing page before budgeting. Anyone quoting BYOC at bare cloud list price is omitting a line item.
  • Someone else's control-plane roadmap. Your data lives in your VPC, but the deploy surface, the feature velocity, and the price of the fee itself belong to Northflank. That is strictly better than Heroku's $3,000/mo Private Space for comparable isolation — Northflank positions BYOC against exactly that — but it is not ownership. If the control plane has an outage or a pricing change, you feel it.

Net: BYOC's savings are conditional, not structural. It saves you the PaaS markup and unlocks your discounts; it does not save you from metering.

Where the ranking flips: sensitivity, not just the headline

A single workload at full utilization flatters flat-rate hardware. Change the shape and the table re-sorts itself — this is the part most pricing posts skip, and it is the part that decides your bill.

Many tiny services. Ten microservices at 0.25 vCPU / 512 MB each: Render wants ten $7 Starters ($70); Northflank wants ten $5.40 nf-compute-20s ($54); Railway meters roughly $10 per service plus the seat (~$100+); the Hetzner box still costs $41 and barely notices. Per-service minimums punish service sprawl; flat-rate boxes absorb it. Winner at sprawl: owned hardware, then Northflank's small plans.

Spiky or idle workloads. Drop average utilization to 10 percent with scale-to-zero. Metered platforms fall toward a tenth of their headline: Railway drops to roughly $30 all-in, Northflank managed toward $15–20. Render still charges $70 — flat tiers do not care that you idled. The Hetzner box still charges $41 for an empty room.

If your traffic looks like a side project with office-hours users, metering wins by a mile and this post's headline table inverts.

Credits, commits, and negotiated rates. Apply a 40 percent savings-plan discount to the BYOC row and it falls to ~$76 plus fee — suddenly competitive with Render while keeping your VPC. Spend startup credits and the infra line goes to zero; no hosted PaaS can match "someone else pays the meter." This is BYOC's genuine home turf: the more cloud discount leverage you hold, the more of it BYOC lets you keep.

Egress-heavy workloads. Push 5 TB a month instead of 100 GB. Railway adds ~$250, Northflank managed ~$300, AWS ~$450 — while Render's block pricing and Hetzner's included 20 TB barely move. Egress is the line item that turns "slightly pricier PaaS" into "ten times the bill," and it is the strongest structural argument for flat-rate dedicated hardware.

Ops time — the line item that dwarfs all of these. Our table prices infrastructure, not humans. Hosted PaaS ops time rounds to zero.

A Cluster API fleet on Hetzner needs node-image upgrades, Kubernetes version rollouts, incident response, and someone on call — call it 3 hours a month at a $150/hr loaded cost and that is $450, nearly ten times the $29–$67 infra delta it saves on this stack. Owned hardware wins the spreadsheet and loses the payroll unless you already have (or want) platform engineering capacity — or you run a self-hosted PaaS layer that absorbs that toil for you.

Which team shape fits which option

  • Solo dev or prototype: Render's flat tiers or Railway's $5 Hobby. Predictable, near-zero ops, and at this scale the $30–60 delta is cheaper than one hour of your time.
  • Funded startup sitting on cloud credits: Northflank BYOC. It is the only row where $100k of Activate credits is spendable, and you keep PaaS UX while burning someone else's money. Revisit when the credits run dry.
  • Team with VPC, residency, or compliance mandates: BYOC again — data stays in your account, deployment stays self-serve, and the alternative is either Heroku Private Space money or building the platform yourself.
  • Cost-sensitive scale-up with steady, always-on workloads: owned Hetzner boxes under Cluster API. The meter disappears exactly where your utilization is highest, and per-service sprawl is free. Budget the ops time honestly or adopt a tool that eats it.
  • Spiky, bursty, or batch workloads: metered PaaS (Railway or Northflank managed) with aggressive scale-to-zero. Paying for idle flat capacity — yours or Render's — is the worst of both worlds.

Notice what this list implies: there is no universally cheapest option, only a cheapest option per workload shape. Anyone selling you one row of the table as the answer has skipped the sensitivity section.

The bottom line

BYOC is a genuinely good deal for exactly two teams: those holding cloud discounts a hosted PaaS cannot honor, and those whose data must live in their own account. For everyone else at list price, it is the priciest way to run an ordinary stack — the cloud meter plus a platform fee, with neither the PaaS simplicity discount nor the owned-hardware flat rate. Render wins predictable small services, metered platforms win spiky ones, and a flat-rate Hetzner fleet wins steady always-on compute by a wide margin, provided you count the ops hours truthfully.

The gap the table exposes is not between vendors but between models: per-unit metering versus flat-rate ownership, with your workload's shape casting the deciding vote. Price your own stack the way this post priced its example — full totals, stated assumptions, then the sensitivity pass — and the right row usually picks itself.

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

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex