Fly.io is raising Machine memory prices 20% on October 1
Short version: on September 21, 2026 Fly.io emailed customers that prices change on October 1. Fly Machines memory prices go up 20%. CPU prices do not. Sprites, their separate sandbox product, go the other way: a 45% cut on CPU and a 50% cut on memory. If your database is unmanaged Fly Postgres, it is a Machine with a volume, so the memory price on that Machine is the price that moves. The email does not say the whole preset price rises 20%. Managed Postgres plan prices are not in the email.
The app can stay on Fly. Only the connection string has to change.
What the email says
The message, sent to Fly customers on September 21, 2026, says the details are on a linked page and the new prices take effect on October 1. The overview in the email is two paragraphs:
Sprites usage pricing is dropping. Fly says they can run Sprites more efficiently than they expected at launch, and they are passing that on: a 45% cut to Sprites CPU prices and a 50% cut to Sprites memory prices.
Fly Machines memory prices are going up 20%. Fly's reason, in their words: server RAM prices have roughly tripled this year because of AI demand, and they are raising memory prices to offset that. The parenthetical is load-bearing: CPU prices are not going up.
That is the whole announcement. There is no new Postgres plan in the email, and no change called out for volumes, snapshots, egress, or IP addresses.
What that does to a database
Fly has two Postgres products, and this email only touches one of them.
Unmanaged Fly Postgres is a Fly app. Fly's own pricing page labels it unsupported. A cluster is Machines, volumes, and any extra memory you attached. The Machine price and the volume price are the same prices as any other Machine and volume. A database sized for production is sized for RAM: shared buffers, connection overhead, and enough cache that queries are not reading the volume on every request. The 20% applies to that memory price. CPU on the same Machine stays where it is. The volume, currently $0.15 per provisioned GB per month, is not part of this email.
Extra RAM on a Machine is priced on its own today at about $5 per GB per 30 days, on top of the named CPU preset. That figure is from Fly's resource pricing, checked September 21, 2026. The email does not publish the new dollar table. What it states is that Machine memory prices rise 20%. That additional-RAM line is the memory price. Whether the RAM already included in a named preset moves by the same 20% is on the details page the email links, and that page is not in the message. A replica is a second Machine, so any memory price it pays is a second copy of the same increase.
Managed Postgres is a fixed plan, and this email does not change it. Verified the same day against Fly's Managed Postgres pricing:
| Plan | Monthly |
|---|---|
| Basic | $38 |
| Starter | $72 |
| Launch | $282 |
| Scale | $962 |
| Performance | $1,922 |
Storage on those plans is still $0.28 per provisioned GB per 30-day month. If you are on Managed Postgres, do not read a 20% increase into a bill that Fly has not put it on. The case for leaving that product is the one in Fly.io Managed Postgres alternatives: $38 per cluster is the floor, there is no hobby tier, and the cluster is not on the public internet.
Why a database feels a memory increase
A web Machine can stop when nobody is requesting it. Fly bills a stopped Machine only for its root filesystem. A production or high-availability Postgres cluster does not get that option: stop a node and that copy of the database is down, and the node you failed over to is billed for its own memory. Fly's single-node Development preset can scale to zero after an hour with no open connections. That is the small cluster, not the one you sized up for RAM. The volume keeps billing either way, because volumes are charged whether or not a Machine is attached.
So on a cluster that stays running, the 20% lands on an always-on Machine, and it lands on the resource you bought more of on purpose. People do not add RAM to a database Machine for fun. They add it because the working set does not fit, or because too many connections are getting killed. RAM past the preset is its own line, and that line is the memory price going up, on every node you are running for availability.
It also stacks on charges Fly already turned on this year, which the email does not walk back:
- Volume snapshots, $0.08 per GB per month after the first 10 GB free, billing since January 1, 2026. Automatic daily snapshots with 5 days of retention are on by default for new volumes.
- Inter-region private network traffic, billed since February 2026. A primary and a replica in different regions already pay for the bytes between them.
None of those are large by themselves on a small volume. Together with a 20% memory increase they are the bill creeping in pieces, which is how people miss it until October's invoice.
Where the database can go
Layerbase Cloud is flat-priced Postgres. Free is $0 with no card. Solo is $5/month. Pro is $15/month for up to 10 databases and 25 GB, and the same account hosts 18 engines, so a cache is a second database rather than a second vendor. Idle databases sleep and wake on connect. There is no memory line that reprices on October 1, because RAM is inside the plan you already bought. More capacity, when you need it, is a pool block at a posted monthly price, not a per-GB memory meter.
That is a different shape from a Fly Machine. Fly sells you a VM and you run Postgres on it. A preset is one combined CPU-and-RAM price. RAM you add past that preset is its own line, and that line is the memory price going up 20%. A managed plan absorbs memory cost into the price on the page. If you need the private-network hop between an app in ord and a database in ord, staying on Fly is still the lower-latency choice, and a 20% memory change does not erase that. If the database is mostly idle, or something outside Fly needs to query it, the memory line is a poor thing to keep paying more for.
The move
The app stays where it is. Dump, load, then change DATABASE_URL.
The long version, including the three ways the public proxy path fails quietly, is the Fly.io migration page and the Managed Postgres alternative. The short version:
Unmanaged Fly Postgres is already a Machine you can reach the way you reach the app. From a machine on the private network, or from your laptop with fly proxy:
pg_dump "postgres://postgres:<password>@<fly-host>:5432/<database>" \
--no-owner --no-acl \
| psql "postgresql://layerbase:<password>@<host>.cloud.layerbase.dev:5432/appdb?sslmode=require"Managed Postgres is not on the public internet. Dump from inside the private network, and use the direct.<id>.flympg.net hostname rather than the PgBouncer one. A transaction pooler and a long pg_dump do not get along.
Then point the app at the new database. Setting the secret redeploys:
fly secrets set DATABASE_URL="postgresql://layerbase:<password>@<host>.cloud.layerbase.dev:5432/appdb?sslmode=require"Check row counts on both sides and run the app against the new database before you destroy the old cluster. A Fly volume and a Managed Postgres cluster keep billing until they are actually gone.
FAQ
When do the new Fly.io prices start?
October 1, 2026. Fly emailed customers on September 21, 2026.
Is every Fly.io price going up?
No. Fly Machines memory prices go up 20%. CPU prices on Machines stay the same. Sprites CPU prices drop 45% and Sprites memory prices drop 50%. Volumes, snapshots, and Managed Postgres plan prices are not in the email.
Does this raise Fly Managed Postgres from $38?
Not according to the email, and not on the pricing page checked September 21, 2026. Basic is still $38 a month, plus $0.28 per provisioned GB. The 20% is a Machines memory change. Unmanaged Fly Postgres is the product made of Machines.
Do I have to move my app off Fly to move the database?
No. Copy the data, then fly secrets set DATABASE_URL=.... The app keeps deploying with fly deploy.
What does Layerbase charge instead?
Free is $0. Solo is $5/month. Pro is $15/month. The price is the plan, not a memory meter that moves when RAM gets more expensive upstream.
Where to go from here
If the database is a Fly Machine and the memory on it is most of the bill, October 1 is a clean date to stop paying that line. Start at the Fly.io migration page, or create the Postgres and run the dump this week while both sides are up.
If you are on Managed Postgres and the plan price still fits, this particular email is not your trigger. The floor, the missing hobby tier, and the private-network reachability are, and those are written up separately.
Keep reading
- Keep Neon-style branching, drop the compute meterThe reason people pick Neon is branching. The reason they leave is the bill that arrives once branching becomes a habit: a compute meter per branch, a branch-month past the included ten, and the arithmetic before every pull request. Here is what a branch-per-PR workflow costs on a meter, what the same workflow looks like inside a flat plan, and the honest list of what Neon still does better.
- Neon alternatives: when the CU-hour meter stops matching the workNeon is excellent serverless Postgres with a bill shaped like compute-hours and branch-months. That shape fits a bursty production app and fights a stack of small, mostly idle databases. Here is what Neon actually is, where the meter bites, the current plan numbers, and an honest list of reasons to stay.
- Fly.io Managed Postgres alternatives: $38 a month is the floor, not the billFly Managed Postgres starts at $38/month per cluster, adds $0.28 per provisioned GB, and is deliberately unreachable from the public internet. Here is what that costs a side project, why the private networking is defensible, and when to run the database somewhere else.
- Aiven vs Vercel Postgres: a decision guideVercel Postgres is not a product anymore, so this is really Aiven versus a Neon project bought through the Vercel Marketplace. Which one fits, what each costs as of September 2026, and the questions to put in front of a proof of concept before anyone signs.