Five dollars buys you ten months of hosting — or eighteen days. On Fly.io in 2026, both statements are true, and the only thing deciding between them is whether your machines ever stop.
September deal coverage frames Fly.io's trial credit as a 6-to-12-month runway for starter usage before per-second billing kicks in. That framing is real, but it describes exactly one kind of workload: a side project on autostop that sleeps most of the month. The moment your app stays awake — an always-on web process plus a small Postgres — the same $5 covers a couple of weeks, and then month 13 arrives with a meter running. There is no permanent free tier behind the credit. There hasn't been one for new accounts since October 2024.
So let's do the month-13 math first, before the credit psychology. Here is the same starter stack priced both ways, with the $5 runway each burn rate actually buys:
| Profile | Fly.io metered (mo 13) | $5 lasts | Hetzner CX22 flat | Delta |
|---|---|---|---|---|
| Idle side project (autostop) | ~$0.50/mo | ~10 months | ~$4.40/mo | Metered wins by ~$3.90 |
| Typical starter (always-on web + Postgres) | ~$8.33/mo | ~18 days | ~$4.40/mo | Flat wins by |
| Growing app (2× web, bigger DB, 100 GB egress) | ~$25.91/mo | ~6 days | ~$4.40/mo | Flat wins by |
That table is the whole post in miniature: a credit that stretches nearly a year for an idle project and barely two weeks for a typical one, a metered bill that starts under a dollar and ends near $26 for the same platform, and a flat box that never moves. Everything below is the receipts — how each number is built, where it moves, and what the flat price gives up.
What the trial actually is in 2026
Two descriptions of Fly.io's trial circulate right now, and they sound contradictory until you line them up. The official docs describe a free trial of 2 machine-hours or 7 days of access, whichever comes first, with capped machine sizes and no dedicated IPv4 — explicitly "just enough to get a real app up and running," ending the moment you add a payment method. Deal coverage, meanwhile, describes a $5 one-time credit that small-scale usage can stretch across months.
Both describe the same funnel from different ends. The documented trial is the no-card evaluation window; the $5 credit is the small balance new accounts burn through once real usage starts. What neither description includes is a permanent free tier: Fly.io removed free allowances for new organizations on October 7, 2024, and only accounts grandfathered on the retired Hobby, Launch, or Scale plans keep the old package of up to three shared 256 MB machines, 3 GB of volumes, and regional transfer credits. Everyone else pays from the first dollar of usage, with a card on file.
That is the structural fact the runway framing can obscure. A $5 credit behind which stands no free tier is not a smaller version of "free forever" — it is a countdown. The only question is the burn rate, and the burn rate is almost entirely a function of how often your machines stop.
The month-13 bill, line by line
Fly.io's list rates are public and granular: machines billed per second while in the started state, extra RAM at $5.00 per GB per month, volumes at $0.15 per GB per month, snapshots at $0.08, egress at $0.02 per GB in North America and Europe, and dedicated IPv4 at $2.00 per month. Stopped machines are not free either — stopped root filesystems bill at $0.15 per GB per month. A shared-cpu-1x with 256 MB costs roughly $2.02 per month if it never stops, and every shared preset decomposes to the same formula: about ($0.77 × vCPUs) + ($5.00 × GB of RAM).
Here is how the three profiles from the opening table are built from those rates.
Idle side project, ~$0.50/mo. A shared-cpu-1x 256 MB machine on autostop that runs perhaps 40 hours in a month costs about $0.11 in compute. Add a 1 GB volume ($0.15), stopped rootfs for the hours it sleeps (~$0.20), a gigabyte of egress ($0.02), and the free shared Anycast IPv4 ($0). Total: just under fifty cents — the profile for which "$5 lasts 6 to 12 months" is literally true. Note the floor is not zero: volumes and stopped rootfs bill whether the machine runs or not, so even a perfectly idle app trickles about $0.35 a month.
Typical starter, ~$8.33/mo. An always-on web machine at 512 MB ($3.27) plus an always-on single-node Postgres at 256 MB ($2.02), 4 GB of volumes ($0.60), a 3 GB snapshot ($0.24), 10 GB of NA/EU egress ($0.20), and a dedicated IPv4 ($2.00). This is the unglamorous middle — one web process, one small database, a custom domain on a stable IP — and it burns the $5 credit in about eighteen days. The single most avoidable line is the $2 IPv4: the shared Anycast address is free, and many starters never need dedicated.
Growing app, ~$25.91/mo. Two web machines at 1 GB each ($11.54), Postgres at 1 GB ($5.77), 20 GB of volumes ($3.00), matching snapshots ($1.60), 100 GB of egress ($2.00), and dedicated IPv4 ($2.00). Nothing exotic — no multi-region deployment, no performance CPUs — yet the credit covers roughly six days. Scale-to-zero still helps the web tier here if traffic is bursty, but the database never sleeps, and the database plus its storage is over 40% of this bill.
Against all three sits the flat row: a Hetzner CX22 with 2 vCPUs, 4 GB of RAM, 40 GB of disk, and 20 TB of included traffic for €3.79 a month (about $4.40). All three profiles fit inside that box with room to spare — the growing app's ~3 GB of RAM is the closest call, and it still clears. The flat price does not care whether your machines stop.
Where the metered total moves
A single-point comparison flatters whichever side picked the inputs, so here is the sensitivity — the same typical and growing totals recomputed across the variables that actually move them.
Egress geography is the biggest lever most starters never price. Fly.io charges $0.02 per GB in North America and Europe, $0.04 across Asia Pacific, Oceania, and South America, and $0.12 in Africa and India. On the growing profile's 100 GB, that single line reads $2.00, $4.00, or $12.00 — moving the monthly total from $25.91 to $27.91 to $35.91 while nothing about the app changes. The Hetzner row, with 20 TB included, does not move at all. If your users are global, price the egress line for where they actually are, not where you are.
The smaller levers still matter at starter scale. Dropping dedicated IPv4 for the free shared address saves $2.00 — nearly a quarter of the typical-starter bill. Disabling snapshots saves $0.24 on the typical profile and $1.60 on the growing one (snapshots only became billable in January 2026, so older "what Fly.io costs me" posts undercount this). And autostop is the master switch: the idle profile exists only because per-second billing lets a sleeping machine cost almost nothing, which is precisely why the $5 runway spans an order of magnitude depending on workload shape.
Run the sensitivity in the other direction and the honest caveat appears: for the idle autostop profile, metered billing wins outright. Fifty cents beats $4.40 every month, and no flat box can follow a workload to zero. Credits-plus-meters are genuinely the cheapest way to host something nobody visits. The crossover sits somewhere between "side project that sleeps" and "starter that stays up" — roughly, once your always-on footprint passes a single 256 MB machine plus a volume, the flat box starts winning, and every machine you add past that widens the gap.
What the flat box gives up
The flat total is not a free lunch; it is a different bundle of tradeoffs, and they deserve the same line-item honesty as the bill.
A single Hetzner box is one machine in one region. Fly.io's premium buys edge deployment across dozens of regions, per-second scale-to-zero, instant multi-machine scheduling through the Machines API, and managed primitives — Managed Postgres, Tigris object storage, Upstash Redis — that a flat box replaces with self-managed services you back up, patch, and wake up for. The growing profile's self-managed Postgres on Fly.io is already a compromise; on a flat box the database, its backups, and its 3 a.m. pages are all yours.
There is also an ops floor the flat price hides. Four dollars covers the hardware, not the hours: OS patching, TLS renewal, deploy plumbing, monitoring, and the migration itself. For a team with platform skills those are amortized across every app on the box — the second and third apps are nearly free, which is exactly where flat pricing compounds. For a solo developer whose alternative is an evening of toil, the metered premium is often the rational buy. Price your own hours alongside the machines.
The fair summary is not "flat always wins" but "flat wins past the always-on threshold, metered wins below it, and edge plus managed primitives are a separate purchase either way." Anyone telling you one side wins unconditionally is selling you something — possibly a credit.
A credit is a clock, not a gift — decide in month 1
Now the acquisition mechanics behind the runway framing. A trial credit does three jobs for the platform issuing it, none of which is generosity. First, it puts a card on file while the balance reads as "still free," so the transition to paid is a non-event rather than a purchase decision. Second, it funds the habit-formation window: deploys, domains, environment variables, a database with real data — every week on the credit deepens the migration cost of leaving. Third, it expires. And at expiry the choice is never "credit versus free tier" but "metered bill versus migration project," priced under time pressure, which is why month-13 decisions so reliably favor staying.
None of this is sinister; it is simply what a credit is. The defense is to make the month-13 decision in month 1, while migration costs nothing and the numbers are still abstract:
- Measure your burn shape, not just your burn. Deploy with autostop from day one if your workload allows it, then read one month of actual machine-hours. Always-on versus autostop is a 5–10× swing in runway — the single highest-leverage fact about your bill.
- Price the whole stack, not the headline machine. The $2 shared VM is real and so is the $8 stack once Postgres, volumes, snapshots, egress, and IPv4 join it. Run your own line items before the credit does it for you.
- Know your exit price. A flat box at ~$4.40 a month is the standing alternative bid for anything that stays awake. If your metered run-rate crosses it permanently, that is a decision with a date, not a drift.
- Watch the geography line. If your users span regions, model egress at $0.04–$0.12 per GB now, not after the first surprising invoice.
Credits are good marketing because they feel like runway. And for an idle side project, they are — ten months of nearly-free hosting is a genuine gift. But runway that ends at a meter instead of a free tier is a countdown with a pleasant name, and the developers who enjoy it most are the ones who priced month 13 before month 1 ended.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own, where the metered-vs-flat math above stops being a bill comparison and starts being your own cost of goods. Star the repo on GitHub or deploy your first app today.


