Heroku Postgres alternatives after the sustaining-engineering announcement
Short version: Heroku has not announced a shutdown and has not raised prices. What it announced on 6 February 2026 is a shift in how the platform will be developed, which matters mostly if you were waiting on new features. The practical reason people are shopping right now is older than the announcement: the Heroku Postgres ladder has a gap between $20 and $50 a month, and crossing it is a migration with downtime rather than a resize. If you are going to do a migration anyway, it is worth knowing what else is out there.
What the February 2026 announcement actually said
Heroku's CPO Nitin T Bhat wrote that Heroku is "transitioning to a sustaining engineering model focused on stability, security, reliability, and support". The same post says "Enterprise Account contracts will no longer be offered to new customers," and it is explicit that there are "no changes to pricing."
Read that literally, because a lot of the commentary did not. Nothing is being turned off. Your dynos keep running, your add-ons keep working, support continues. What "sustaining engineering" says is that the roadmap is now maintenance rather than expansion. If your plan for the next two years assumed Heroku would ship the thing you have been waiting for, that assumption is the part that broke.
For a database, that is a slower-burning question than it looks. Postgres itself is fine. The thing you are betting on is whether the operational envelope around it, the plan ladder and the tooling, will change to fit you as you grow. Heroku has now told you it will not.
The Essential ladder, and the cliff at the top of it
Heroku Postgres pricing, verified as of late August 2026 from Heroku Elements:
| Plan | Price | Storage | Connections |
|---|---|---|---|
| essential-0 | $5/mo | 1 GB | 20 |
| essential-1 | $9/mo | 10 GB | 20 |
| essential-2 | $20/mo | 32 GB | 40 |
| standard-0 | $50/mo | 64 GB | 200 |
Look at the jump. There is nothing between $20 and $50. An app that outgrows 32 GB or 40 connections goes straight to two and a half times the bill, and the next thing it buys is 64 GB it probably does not need yet.
Worse, that jump is not a slider. Heroku's own docs say moving between Essential and Standard is not an in-place upgrade: you use pg:copy, and the documented rate is about 3 minutes of downtime per gigabyte. A 30 GB database is roughly an hour and a half of maintenance window to change plans on the same vendor.
That is the sentence that should reframe the whole decision. If leaving Essential costs you a migration with real downtime, then "stay on Heroku and upgrade" and "move to another provider" are the same category of work. The comparison is not migration versus no migration. It is which migration.
What Essential plans do not include
Heroku documents this clearly, and it is worth reading before you assume a $9 database behaves like a small Standard one. On Essential plans there are no rollbacks, forks, or followers, no Expensive Queries view, no Postgres logs, and no additional credentials. Maintenance can happen unannounced and Postgres version upgrades are applied automatically. The uptime target is 99.5%. The databases are multi-tenant and Aurora-backed, and there is a cap of 4,000 tables.
None of that is a scandal for a $5 database. It is the deal. But it does mean a few common developer expectations quietly do not apply:
- You cannot fork the database for a branch or a test run. Forks and followers are not on Essential, so preview environments get a fixture script instead of real data.
- You cannot hand a read-only credential to an analytics tool. Additional credentials are not on Essential.
- You cannot look at Postgres logs when something is slow. No logs, and no Expensive Queries panel either.
- Version upgrades happen to you rather than with you. Automatic upgrades on unannounced maintenance is the documented behavior.
If you have been debugging blind on a small Heroku database and blaming yourself, this is why.
The alternatives, honestly
I run one of these, so read the first paragraph with that in mind. I have tried to describe the others by shape rather than quoting rates, because everyone reprices and a number in a blog post ages badly. Check the current pricing page before you decide anything.
Layerbase. Flat plans, no meters, and 18 database engines on one account rather than one add-on per engine. Postgres is on the free tier, which is $0 for 2 databases and 5 GB with no card. Solo is $5 a month for 10 GB, Pro is $15 a month for 25 GB and up to 10 databases, and capacity past that grows in $10/month blocks that add 1 GB of RAM, 1 vCPU, and 25 GB of storage. The thing that has no Essential-tier equivalent at all is branching: 16 of our engines branch copy-on-write, so a preview deploy or a CI job gets a real copy of the data in seconds instead of a seed script. Point-in-time recovery exists on Pro and above, and it requires the database to be pinned always-on, because replaying a write-ahead log needs a database that was actually running. What we do not have is a dyno. We host the database; your app stays where it is.
Neon. Serverless Postgres with branching, billed on usage rather than a flat plan, which is either the feature or the bug depending on how spiky your traffic is. If you liked the idea of Heroku forks and could not have them on Essential, Neon's branching is the closest thing in the same conceptual place.
Supabase. Postgres plus the rest of a backend: auth, storage, realtime, an API layer. If you were using Heroku mostly as glue and would rather buy the glue, this is the one that changes the most about your architecture. If you want a database and nothing else, it is more product than you asked for.
Render. The closest thing to a like-for-like Heroku replacement in overall shape, since you can move the web service as well as the database rather than splitting them. Read the terms on their free database tier carefully before you lean on it; our Render migration writeup has the detail that catches people.
Crunchy Bridge. Postgres specialists, aimed at people who want the database taken seriously rather than bundled. If your reason for leaving Heroku is that Essential hid the logs from you, this is the direction that solves that most directly.
The case for staying
I would rather you make a good decision than a fast one, so here are the situations where moving is the wrong call.
Your app is on Essential, it is small, and it works. There is no announced end date, no price increase, and no deprecation. Migrating a working database to save a few dollars is a way to spend a weekend acquiring new bugs.
You are deep in the Heroku ecosystem. Pipelines, review apps, the Scheduler, a stack of add-ons wired together by config vars. Pulling the database out of that is one job. Pulling the platform out is a much larger one, and you should not start the second one by accident.
You need replicated Postgres with automatic failover. Our shared plans are single-node with backups and branching, not a replica set. If a standby is a hard requirement for you, the answer is a plan that sells you one, and that is not us.
The case for moving is strongest when you are about to hit the Essential ceiling. At that moment you are choosing between an hour of pg:copy downtime to get to standard-0 at $50 a month, and a comparable window to land somewhere that does not have a cliff in the middle of its ladder.
Moving the data
Heroku Postgres is upstream Postgres with no proprietary wire protocol, so the copy is the boring part. Paste your DATABASE_URL on the Heroku migration page and we read it once, copy the schema and data into a managed Postgres database, verify the counts, and report anything that did not come across. Nothing is written back to Heroku and your app keeps running throughout.
By hand it is pg_dump piped into psql, the same as any Postgres-to-Postgres move. The step-by-step version, including the Key-Value Store add-on and the config-var swap, is in Migrating from Heroku to Layerbase.
FAQ
Is Heroku shutting down?
No. The February 2026 announcement describes a transition to a "sustaining engineering model focused on stability, security, reliability, and support," and states there are no changes to pricing. The one concrete customer-facing change named in the post is that Enterprise Account contracts are no longer offered to new customers. Nothing was announced as being turned off.
Did Heroku raise Postgres prices?
No. The announcement is explicit that there are no changes to pricing.
Why is there nothing between $20 and $50 on Heroku Postgres?
That is the shape of the ladder: essential-2 at $20 a month is the top of the Essential range, and standard-0 at $50 a month is the next rung, verified as of late August 2026. It is not purely a resource jump, since Essential is also the tier that has no rollbacks, forks, or followers, but there is no intermediate step to buy.
Can I upgrade from Essential to Standard without downtime?
Not in place. Heroku's docs route that change through pg:copy and quote roughly 3 minutes per gigabyte of downtime. On a 30 GB database that is about an hour and a half. It is worth knowing before you treat "just upgrade" as the low-effort option.
What do Essential plans leave out?
Per Heroku's own documentation: rollbacks, forks, and followers, the Expensive Queries view, Postgres logs, and additional credentials. Maintenance can be unannounced and version upgrades are automatic, the uptime target is 99.5%, the instances are multi-tenant and Aurora-backed, and there is a 4,000-table cap.
What is the best Heroku Postgres alternative?
It depends on which part hurts. If it is the bill shape and you want more than one kind of database, a flat plan on Layerbase covers Postgres plus 17 other engines on one account. If it is spiky traffic, usage-based Postgres like Neon fits better. If you want to move the web service too, Render is the closest replacement for the whole platform. If you want Postgres taken seriously and nothing bundled, Crunchy Bridge.
Should I just stay on Heroku?
Often, yes. There is no deadline. If your database is small, working, and surrounded by Heroku pipelines and add-ons you rely on, moving it costs more than it saves. The moment to reconsider is when you are about to cross from Essential to Standard, because that upgrade is itself a migration.
Starting
If you already have data on Heroku, start at the migration page and paste the DATABASE_URL. If you want to try the destination first, create a Postgres database on the free tier and point a branch of your app at it for a week before you decide anything.
Keep reading
- Point-in-time restore is generally available, including FerretDBContinuous WAL archiving and restore-to-any-timestamp are now switchable from the Backups tab of any always-on PostgreSQL or FerretDB database on the Pro plan. A restore builds a new database and never touches the source. FerretDB gets it because its documents live in Postgres, and we proved that over the MongoDB wire before writing this.
- Migrating from Heroku Postgres to LayerbaseA step-by-step move of Heroku Postgres, and the Key-Value Store add-on, onto managed Layerbase databases. What comes across, what does not, why you must read DATABASE_URL fresh, and how to cut over without stopping your dynos.
- Aiven alternatives: one plan instead of one bill per serviceAiven prices every service on its own hourly meter, so a Postgres plus a MySQL plus a Valkey is three plans and three line items. Here is the arithmetic against a flat Layerbase plan, the real shape of both free tiers, and the four things Aiven does that we do not do at all.
- Point-in-time restore for Postgres: we lose seconds now, not an hourHourly dumps mean a bad DELETE at :59 costs you most of an hour, unrecoverably. We built continuous WAL archiving and restore-to-any-timestamp for always-on Postgres on Layerbase, then proved it with an executed drill: the row written two seconds before the target came back, the row written four seconds after it did not.