Fly.io did not raise a single price in early 2026. It did something harder to notice: it added two lines to the invoice that used to read $0. On January 1, volume snapshots — the automatic daily backups every volume ships with — started metering at $0.08 per GB-month. A month later, private-network traffic between regions started metering too.
Neither charge is large on its own. Together, on exactly the multi-region topology Fly.io's own marketing sells hardest, they add roughly $9 to a $33 bill — and they keep growing with retention days and replica count while nothing else on the invoice moves.
Yesterday's three-vendor comparison showed the headline spread between Railway, Render, and Fly.io. This post opens up the two lines that moved: what each one meters, the worked arithmetic for a typical three-region app before and after, where the number is most sensitive, and what the same topology costs where neither meter exists.
The two lines, with receipts
Line 1: volume snapshots, billable since January 1, 2026. Fly.io announced it on its community forum ("We are going to start charging for volume snapshots from January 2026") and the pricing page still carries the scar tissue — a "New charges" callout explaining the first charges landed on the February invoice. The rate: $0.08 per GB per month, first 10 GB free, pro-rated hourly, metered on actual stored bytes rather than provisioned volume size. The part that converts a small rate into real money is the default: automatic daily snapshots with 5 days of retention are enabled on every new volume, and snapshots accumulate incrementally, so what you pay is a multiple of your daily change rate, not a single copy.
Line 2: cross-region private-network transfer, metered from February 2026. Fly.io's pricing page now carries a full data-transfer table that did not use to matter: traffic between Machines in the same region is free, but anything crossing a region boundary on the private network — the exact path database replication, cache sync, and multi-region internal APIs travel — is billed per GB by region group. The current card reads $0.006/GB within North America and Europe, $0.015/GB across Asia Pacific, Oceania, and South America, and $0.050/GB in Africa and India for organizations on granular rates (every org created after July 2024, plus anyone who opted in — a one-way switch). Older orgs on legacy rates pay the higher public-egress rate on that same traffic. Either way, the direction is one-way: traffic that rode free now has a meter.
Two meters, appearing within 60 days of each other, both aimed at previously bundled platform internals. That is the pattern; now the arithmetic.
The worked example: a three-region app, line by line
To keep this checkable, here is the reference topology: two small app Machines plus a three-node Postgres cluster spread across Frankfurt, Ashburn, and Singapore, 20 GB volumes per database node, roughly 30 GB of data actually stored per node, and about 300 GB a month of cross-region replication and internal-API traffic. Public egress (500 GB, served to North America and Europe) is included for context but kept out of the delta — the point of this table is what the new meters add.
| Monthly line | 2025 rate card | 2026 rate card | Same topology, owned Hetzner boxes |
|---|---|---|---|
| Volume snapshots (3 nodes × ~30 GB chain, minus 10 GB free) | $0 | ~$6.40 (80 GB × $0.08) | $0 (filesystem copies on owned disk) |
| Cross-region private transfer (~300 GB, mixed $0.006–0.015) | $0 | ~$3.00 | $0 (WireGuard between owned nodes) |
| New-meters subtotal (the delta) | $0 | ~$9.40 | $0 |
| Volumes (60 GB provisioned × $0.15) | $9.00 | $9.00 | included in box price |
| App + DB Machines (always-on shared class) | ~$14 | ~$14 | 3 × CX22-class box, ~$5 each |
| Public egress (500 GB × $0.02, EU/US) | $10.00 | $10.00 | 4% of one box's 20 TB allowance |
| Total | ~$33 | ~$42.40 | ~$15, flat |
Three things jump out before the sensitivity analysis. First, the delta is almost 30% on top of the 2025 bill, and it comes entirely from lines that did not exist to budget against a year earlier — every 2025 cost model for this topology is wrong by construction. Second, the snapshot line alone (~$6.40) is the single biggest new charge, and it is driven by a default the user never chose: five retained daily copies, on, from volume creation. Third, the flat-rate column does not move between any two columns of this table, because neither snapshots-as-filesystem-copies nor node-to-node traffic were ever billable events on owned hardware.
If your footprint differs, the per-unit rates above let you redo the math in minutes: snapshot gigabytes past the free 10, times eight cents; cross-region gigabytes times your region pair's rate.
Where the number moves: retention, region, and org age
A single worked example can flatter any framing, so here is the sensitivity around each variable that actually drives the result.
- Retention days scale the snapshot chain roughly linearly. Our three-node, five-day chain bills ~$6.40 past the free allowance; tighten retention to two days and it falls toward ~$2, while the 30-day policies compliance-minded teams actually run head toward ~$40 on the same dataset (incremental-dedup softens the curve, but the direction holds). The free 10 GB covers roughly one small volume's chain and then stops helping — it is a per-organization allowance, not per volume.
- Region pair spreads the replication line ~8x. The same 300 GB of cross-region traffic costs $1.80 entirely inside North America/Europe ($0.006) but $15.00 touching Africa or India ($0.050). A team that adds a Johannesburg or Mumbai replica for latency reasons pays the highest private-transfer rate on every replicated byte, forever.
- Org age decides which rate card applies. Organizations created after July 2024 are on granular rates automatically. Older orgs pay the public egress rate on private cross-region traffic unless they take the one-way opt-in to granular pricing — meaning a long-standing account can be paying $0.02 instead of $0.006 per EU/US replication gigabyte without any line on the invoice saying so.
- Replica count multiplies both lines at once. Each Postgres replica adds its own volume (more snapshot chain) and its own replication stream (more cross-region bytes). The new meters scale with exactly the topology choices — more regions, more copies — that resilience best practice recommends, which is why they sting more than their per-unit rates suggest.
The pattern, not just the prices
Zoom out and the two lines sit inside a four-step timeline: the permanent free tier went away for new organizations in late 2024, snapshots started metering in January 2026, private-network transfer followed in February, and GPU Machine support is deprecated with removal after August 2026. Each step is individually defensible — free tiers get abused, backups cost real disk, cross-region transit is not free to operate, GPUs are a support burden. But the direction across eighteen months is unambiguous: costs that used to be absorbed into the platform margin are being itemized onto the tenant's invoice, and the itemized costs are the ones that grow with architectural maturity (more regions, more replicas, longer retention) rather than with business success (more users).
That is the signature of a vendor tightening margins rather than raising prices. A price hike invites comparison shopping; a new meter on a previously free internal only shows up on the second invoice, denominated in units — snapshot-GB-months, cross-region GB — that no 2025 budget spreadsheet has a row for. Expect the next meters, if they come, to follow the same logic: previously bundled platform internals with real operating cost and no existing budget line. Managed-Postgres backup storage and extension-egress traffic are the obvious candidates.
When Fly.io still wins
Honesty requires the counter-cases, because flat hardware is not free — it is fixed, which punishes a different shape of workload.
- Single-region, bursty apps. One region means zero cross-region transfer; a small dataset means the snapshot chain fits near the 10 GB free allowance. An app with spiky traffic on machines that scale to zero can still bill single digits, where three always-on boxes cannot follow it down.
- Global anycast without owning points of presence. Fly.io's edge — anycast IPs, automatic routing, TLS, DDoS mitigation — in dozens of cities has no owned-hardware equivalent at any price a small team would pay. If your requirement is genuinely "fast everywhere," the meters are the price of a network you could never build.
- Short-lived and preview workloads. Ephemeral Machines that live for hours generate no snapshot chain worth metering and no replication topology. The new lines tax permanence and distribution; the temporary escapes both.
The breakeven, stated plainly: the more regions, replicas, and retention days your architecture needs — the more serious the deployment — the faster the metered total converges on, then passes, the flat one. Our reference topology crosses at three regions with default retention. A single-region side project never crosses at all.
What flat hardware charges instead
Price the same topology on owned Hetzner boxes: three CX22-class machines at roughly €4.50 each (about $5), each carrying 20 TB of included traffic. The whole reference footprint — 500 GB of public egress plus 300 GB of node-to-node traffic — is under 5% of one box's allowance, with overage at roughly €1 per TB beyond that. Snapshots are ZFS or filesystem copies on disk you already rent: no per-GB-month meter, no retention multiplier, no region-pair table. Total: ~$15 a month, identical in every column of the table above, growing only when you add a fourth box.
That is the actual comparison the two new lines force: not "managed versus self-hosted" in the abstract, but metered-internals versus already-owned capacity. Every future Fly.io meter will widen that specific gap, because every candidate for metering — backups, replication, internal traffic — is something owned hardware already includes at zero marginal price. The invoice will keep growing new lines. The box will keep costing $5.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own, where snapshots and node-to-node traffic are capacity you already bought, not lines on someone else's invoice. Star the repo on GitHub or deploy your first app today.



