Heroku review: dyno prices from $5 to $1,500, the 30-second timeout and daily restarts, the June 2025 outage, sustaining mode since February 2026, and when to leave.
Table of Contents
On 6 February 2026 Heroku's chief product officer, Nitin T Bhat, published a short post saying the platform was "transitioning to a sustaining engineering model focused on stability, security, reliability, and support." In plain terms, Salesforce has stopped building Heroku forward. There is no new feature roadmap, and Enterprise Account contracts "will no longer be offered to new customers." The reason given is Salesforce's push into enterprise AI.
What did not change matters just as much. Anyone paying by credit card in the dashboard, existing or new, keeps the same pricing, billing and service, and existing Enterprise contracts renew as usual. There is no shutdown date. Heroku is not dead.
It is not frozen solid either. Fine-grained access control reached all customers on 21 August 2026, and team-level API authorizations shipped on 30 September 2026. Those are maintenance-shaped releases, though, not a product moving forward. The people who felt the change most were waiting on Fir, the Kubernetes-based next generation that went GA in April 2025 inside Private Spaces. "We're waiting for general release but sounds like that's just not going to happen now," one user told DevClass. Another made the opposite case: "nobody offers true PaaS like Heroku." Both are right. The rest of this review is about which one applies to you.
The free tier ended on 28 November 2022. The figures below are the monthly maximum for a dyno running 24/7, taken from heroku.com/pricing on 2 October 2026. Billing is prorated to the second, so a dyno you scale down mid-month costs less.
| Dyno (Cedar) | RAM | Max per month | Catch |
|---|---|---|---|
| Eco | 0.5 GB | $5 | 1,000 hours shared by all Eco dynos, sleeps after 30 min idle, personal accounts only |
| Basic | 0.5 GB | $7 | Always on |
| Standard-1X | 0.5 GB | $25 | Same RAM as Basic |
| Standard-2X | 1 GB | $50 | |
| Performance-M | 2.5 GB | $250 | 5x the price of Standard-2X for 2.5x the RAM |
| Performance-L | 14 GB | $500 | |
| Performance-L-RAM | 30 GB | $500 | |
| Performance-XL | 62 GB | $750 | |
| Performance-2XL | 126 GB | $1,500 |
Data is billed separately. Heroku Postgres starts at $5 for Essential-0, which gives 1 GB of disk, 20 connections and an allowance of up to 4 hours of downtime a month. Standard-0 at $50 is the first plan that cuts that to 1 hour, with 64 GB of disk and 120 connections. Key-Value Store (Redis) starts at $3 for 25 MB.
Add it up. A hobby app with an always-on Basic dyno, Essential-0 Postgres and a Mini Key-Value store is $15 a month. Something you would call production, two Standard-1X web dynos plus Standard-0 Postgres, is $100 before any logging or monitoring add-on. Students on the GitHub Student Developer Pack get $13 a month in platform credit for 24 months ($312 in total, no rollover), which nearly covers the hobby stack.
Private dynos (from $125), Shield dynos (from $150) and every Fir dyno ($25 up to $2,400) need a Private Space. Heroku's February post does not spell this out, but Private Spaces are an Enterprise product, and Enterprise contracts are closed to newcomers. Our reading: a new customer paying by card is buying Cedar on the Common Runtime and nothing else.
The reason people stay is the workflow, and it has not degraded. Push to a Heroku remote or connect a GitHub repo, a buildpack works out the language, and the app is live at a URL. Pipelines chain review, staging and production apps, and teams set View, Deploy, Operate or Manage permissions per pipeline.
Review apps are the feature every competitor copied. Turn them on and each pull request gets its own temporary app, destroyed after five days without activity. The dashboard warns, accurately, that review apps "may incur dyno and add-on charges", so a busy repo with a Postgres add-on per PR adds up. Add-ons for logging, mail, search and queues attach in one command and land on the same invoice.
These live in the Dev Center rather than on the pricing page, and each one has caught out someone moving an app that ran fine on a VPS.
The 0.5 GB on Basic and Standard-1X is a real ceiling. A Rails or Django app running a few worker processes sits close to it. Heroku Metrics plots usage against that quota, and it is the chart to watch before you pay double for Standard-2X.
Lock-in is the fear with any PaaS, and here it is smaller than it looks. PGBackups uses the native pg_dump tool, so a backup is a standard PostgreSQL dump that restores into RDS, Neon, Render or a plain VPS. heroku pg:backups:url gives a download link that expires after 60 minutes. Daily backups are kept for 7 days, and the backups of a deleted database go after a short grace period. Download first, deprovision second.
The app side is just as portable if you kept the habits Heroku taught everyone: config in environment variables, a Procfile, stateless processes. The real work in leaving is the add-ons, because each one is a separate vendor account to recreate, and the review-app workflow, which Render reproduces most closely.
On 10 June 2025, from 06:00 UTC, an automated operating system update ran on production infrastructure "when it should have been disabled." The networking service relied on a legacy script that only applied the correct routing rules on first boot, so hosts that restarted came back broken. Heroku's own summary puts the damage at "up to 24 hours of downtime for many customers." Worse, the status page and internal tools ran on the same affected infrastructure, so for hours customers could not see what was happening. Service was declared recovered early on 11 June.
That outage predates sustaining mode. Whether a smaller engineering effort makes the next one more or less likely cannot be judged from outside. The support you get when it happens can. The baseline for every customer is "best effort" on business-stopping issues. The Standard tier quotes "2 days, during business hours", which means Monday to Friday, 9am to 9pm US Eastern. The 1-hour Premier response and Signature Success belong to Success Plans for Enterprise customers, and a new customer can no longer sign an Enterprise contract.
The AI work Salesforce cited is visible on the same pricing page. Managed Inference and Agents sells model access per million tokens, input and output: claude-4-5-haiku at $1.10 / $5.50, claude-sonnet-4-6 at $3.30 / $16.50, claude-opus-4-8 at $5.50 / $27.50, and open models such as gpt-oss-120b at $0.15 / $0.60 and qwen3-coder-480b at $0.45 / $1.80. It attaches like any add-on and bills on the Heroku invoice, which is handy if your app already lives there. It is not a reason to move there. Every one of those models can be bought elsewhere.
Keep it if you already run there and it works. Prices have not moved, card customers were promised no change, the database is a pg_dump away, and a migration nobody forces on you is cost without benefit. Teams with existing Enterprise contracts lose nothing either; theirs renew.
Do not start a new project on it. You would be buying a platform its owner has stopped developing, limited to two regions, with best-effort support, at prices that were high before the freeze. For the same git-push workflow, Render starts at the same $7, adds preview environments and charges a flat $25 a month for a team. Railway bills per second straight from a Git repo. Fly.io runs microVMs in about 18 regions, which matters if your users are in Asia or Australia, where Heroku's Common Runtime has no presence at all.
One newcomer is the exception: a student with the GitHub Pack, for whom $312 of credit makes Heroku a free way to learn the deploy model everyone else copied.
Visit the official website to see the latest plans, pricing, and special offers.
Get Started - Heroku* Affiliate link - we may earn a commission at no extra cost to you.