Heroku Review
Worth it for a git-push app with a Postgres add-on. A weak default once the web process outgrows the smallest always-on dyno.
Heroku is worth it in 2026 when a small team wants git-push deploys and a managed Postgres add-on, and will pay for an always-on dyno. Eco is $5 for 1,000 shared dyno hours a month and sleeps after 30 minutes idle, verified on Heroku's pricing page in September 2026. Basic, the always-on size, maxes at $7 per dyno.
A production web dyno with metrics is Standard-1X and still only 0.5 GB of RAM. Team apps cannot use Eco at all, so a company account starts on the always-on size. The closest replacements are Render, Railway, Fly.io, DigitalOcean App Platform, and Northflank.

Heroku is still the platform a Rails or Node team means when they say the app should go live from a git push, and in 2026 that habit has a floor price. Eco is a paid hour pool, not a free dyno, and the always-on size bills even when nobody is hitting the app. A personal project can sleep and a Team app cannot, which is the split in this purchase.
This review prices Cedar dynos, Postgres, and the Private Space that Fir requires, then sets them next to Render, Railway, Fly.io, DigitalOcean App Platform, and Northflank. Stay if the Procfile and the add-on invoice are the workflow you want. Leave if you need more memory than the smallest metrics dyno.
Toolradar data: the September 2026 hosting and deployment ranking evaluated 297 tools, and 230 of them offer a free or freemium plan. Heroku is in that catalog and sits outside the top 10. A dyno that stays awake is a paid line on day one.
How we compared: vendor pricing and product pages read on September 24, 2026. Dyno and data prices are Heroku's published monthly maximums for a resource that runs the whole month. Eco is the exception, a flat subscription whether you use the hours or not. No vendor paid for a place in this review.
What is Heroku?
Heroku is Salesforce's platform as a service, acquired in 2011, which is why Enterprise features and a Salesforce sync sit behind a contract rather than a self-serve switch. You push code, Heroku builds it, and runs each process type in a dyno, so the bill follows process count, not a single app price.
The common runtime is Cedar, where Eco, Basic, Standard, and Performance dynos live, along with Postgres, Key-Value Store, and Kafka. Fir is the Kubernetes generation, and every Fir dyno requires a Private Space, so those shapes are not a cheaper Basic.
Heroku Connect syncs Postgres with Salesforce, and the Demo edition starts free, enough to see the mapping and not enough for production data. Enterprise and Shield editions are limited to Heroku Enterprise customers, so a production sync is a contract.
Managed Inference sits on the same pricing page, with token rates rather than a seat fee, so you pay only when a model is called.
How Heroku works
The everyday loop is a git push and a Procfile, which is the habit you are paying for. The web process and a worker are separate formations, so both running is two dynos, not a bundled app fee.
One-off commands, including Heroku Scheduler, provision a dyno for the length of the command and that time is billed, so a short nightly task is not free.
Eco is only for personal apps, meaning apps that are not in a Heroku Team or an Enterprise Team. The plan is a fixed hour pool for the month, shared by every Eco dyno, review app, and Heroku CI run on that account, so a pull request and the live app spend the same hours.
A web dyno sleeps after 30 minutes without requests, and sleep does not consume hours, so idle time stays inside the pool. A worker-only Eco app does not sleep, because it never sees web traffic, and it can burn the pool around the clock.
When the account hits the full pool, every Eco dyno is forced to sleep until the next month, and Heroku does not sell extra Eco hours. The documented move for an app that must stay up is Basic, roughly $0.01 an hour.
Standard-1X adds metrics, threshold alerts, preboot, and horizontal scale, and the RAM does not increase with those features, so you pay for a safer deploy rather than a larger process. Performance dynos are limited to accounts with an established payment history, so a new team cannot use them as the first production size.
Heroku key features
Heroku pricing
Heroku bills dynos on wall-clock time, not CPU time. Anything scaled above zero accrues usage whether or not requests arrive, prorated to the second, except Eco, which is a flat fee for the month you are subscribed. A dyno left scaled up still costs the full month, traffic or not.
A Basic dyno that runs the whole month is the always-on common-runtime size. A Standard-1X web dyno plus a Standard-1X worker is two of those $25 lines, and the database is a third line.
Essential-0 Postgres matches the Eco monthly fee, with a 4-hour downtime ceiling and shared RAM, which fits a side project and fails if that outage would wake a customer, and the dedicated step up is Standard-0.
High availability is Premium-0 at $200, still on the same RAM and disk, with rollback out to 7 days and a 15-minute downtime ceiling.
Kafka's cheapest plan, Basic 0, is $100 a month, often a larger line than the web dyno.
Render's always-on Starter matches that Basic monthly maximum, and its free web instance spins down after 15 minutes inside a 750-hour pool. Railway Pro is $20 per workspace with a matching usage credit and unlimited seats, plus the per-vCPU and per-GB rates in the table.
Fly.io's shared-cpu-1x is $2.02 a month in Ashburn and Amsterdam, and $2.43 in San Jose, so the city is part of the price. App Platform's smallest shared container matches Eco's monthly rate, and a development database is another line at Basic's monthly maximum. Northflank's nf-compute-10 is $2.70 a month for a container you can leave running.
Prices below were verified on each vendor's pricing page in September 2026. Heroku Enterprise, Render Enterprise, Railway Enterprise, and Northflank Enterprise are quotes. Fly.io support is a separate purchase from the machine price.
| Plan | Price | Best for |
|---|---|---|
| Heroku Eco | $5 for 1,000 hours | Personal apps only. Sleeps after 30 idle minutes. Pool does not expand. |
| Heroku Basic | $7/dyno/mo max | Always on, 10 process types. About $0.01/hour. |
| Heroku Standard-1X | $25/dyno/mo max | Metrics, preboot, horizontal scale. Still 0.5 GB, so extra RAM is a larger dyno. |
| Heroku Standard-2X | $50/dyno/mo max | First common-runtime dyno with 1 GB of RAM. |
| Heroku Performance-M | $250/dyno/mo max | 2.5 GB dedicated. Requires an established payment history. |
| Heroku Postgres Essential-0 | Same monthly fee as Eco | 1 GB disk, 20 connections, 4-hour downtime ceiling, shared RAM. |
| Heroku Postgres Standard-0 | $50/mo max | Dedicated 4 GB RAM, 64 GB disk, rollback up to 4 days. |
| Heroku Postgres Premium-0 | $200/mo max | High availability on the same 4 GB. Rollback up to 7 days. |
| Heroku Key-Value Mini | $3/mo max | 25 MB, 20 connections. |
| Heroku Kafka Basic 0 | $100/mo max | Smallest Kafka plan. 3.73 GB, one week retention. |
| Heroku Private Space | From ~$1.389/hour | Space fee on Elements. Dynos inside are extra. Fir requires a space. |
| Heroku Fir dyno-1c-4gb | $80/dyno/mo max | 1 vCPU, 4 GB. Private Space only. |
| Heroku Nova Lite | $0.06 / $0.24 per 1M tokens | Input / output. US and EU on the pricing page. |
| Heroku Claude Opus 4.8 | $5.50 / $27.50 per 1M tokens | Input / output. US and EU. |
| Render Free web | $0 | Spins down after 15 idle minutes. 750 free instance hours a month. |
| Render Starter web | Matches Basic | 512 MB, 0.5 CPU. Billed while the instance is on. |
| Render Pro workspace | $25/mo | Unlimited seats. 25 GB bandwidth, then $0.15/GB. |
| Render Postgres Basic-256mb | $6/mo | Free Postgres expires 30 days after creation. |
| Railway Hobby | Fee equals its usage credit | Same monthly number as Eco. Stopped services cost nothing. |
| Railway Pro | $20/workspace/mo | Includes a matching usage credit. Seats are unlimited. |
| Railway memory | $10 per GB-month | CPU is $20 per vCPU-month past the credit. Egress is $0.05/GB. |
| Fly.io shared-cpu-1x, Ashburn | $2.02/mo | 256 MB, markup 1. San Jose is $2.43. Card required. |
| Fly.io volume | $0.15/GB/mo | Billed even if the Machine is stopped. Rootfs on a stopped Machine is the same rate. |
| DigitalOcean App Platform | Smallest shared container matches Eco | 512 MiB, 50 GiB transfer. Scalable 1 GiB size is $12/mo. |
| DigitalOcean dev database | Matches Basic, per 512 MB | Extra outbound transfer is $0.02/GiB. Free tier is static sites only. |
| Northflank nf-compute-10 | $2.70/mo | 0.1 shared vCPU, 256 MB. Egress is $0.06/GB. |
| Northflank Sandbox | No-cost services | 2 services, 1 database, 2 cron jobs. They do not sleep. |
Heroku pros and cons
What we like
- A sleeping web dyno on Eco does not spend the hour pool, so a quiet personal app can last the month.
- Standard-1X adds preboot, metrics, and horizontal scale without leaving the common runtime.
- Essential-0 Postgres, Key-Value, and Kafka share the dyno invoice.
What could be better
- Team and Enterprise apps cannot use Eco, so the cheapest always-on dyno is Basic.
- Standard-1X is still 0.5 GB, so the 1 GB common-runtime size is Standard-2X at $50.
- An empty Eco pool sleeps every Eco dyno for the rest of the month, and extra hours are not for sale.
Who Heroku is for
Heroku fits a small team that wants a Procfile, a Postgres add-on, and a bill made of named dynos rather than a cloud calculator. Personal projects can live on Eco if idle sleep is acceptable. A customer-facing app on a Team starts at Basic, because Eco is refused there, and it should move to Standard once you want preboot and metrics.
It is the wrong default when the process needs more memory than the smallest metrics dyno and you are not ready to step up, or when high availability on Postgres means the Premium plan. Fir and network isolation add a Private Space before the first Kubernetes-shaped dyno, so isolation is a platform fee.
If the workload is a VM you SSH into, read VPS hosting for developers and the DigitalOcean review.
If it is a container you run yourself, the self-hosting tools list is the other path, and it pays off only when someone will patch the host.
Skip Heroku when the front end is the product. A Next.js app is usually a closer call on the Vercel review and the serverless platforms roundup, because an always-on dyno is the wrong meter for a page.
Managed Postgres you want to shop on its own is the Postgres hosting page, with Supabase if the database should be the platform. Pipelines that outgrow review apps belong with the CI/CD tools list.
A monitor that pings an Eco app every minute will keep it awake and spend the hour pool, which is the same failure mode Heroku documents for uptime checks. Production alerts belong on the monitoring tools list, not on a cron that defeats sleep.
Dyno price changes show up in the Devshot brief. Subscribe free if you want that note in the inbox.
Best Heroku alternatives
If Heroku is not the right fit, these are the closest options.
| Tool | Best for | Starts at | |
|---|---|---|---|
| Heroku | Small teams that will pay for an always-on dyno and a Postgres add-on. | Eco $5 for the hour pool | Visit → |
| Render | Teams that want web, worker, and Postgres services with a free instance for trials. | Starter web matches Basic | Visit → |
| Railway | Backends where a stopped service should drop to zero compute. | Pro $20/workspace/mo with a matching usage credit | Visit → |
| Fly.io | Long-running Machines placed in a specific region, billed while started. | shared-cpu-1x 256MB is $2 | Visit → |
| DigitalOcean App Platform | Git deploys when the rest of the stack is already on DigitalOcean. | Smallest shared container matches Eco | Visit → |
| Northflank | Preview environments and containers, including a sandbox that stays up. | From $2 | Visit → |
The bottom line
Heroku is worth paying for when the workflow you want is a Procfile, review apps, and Postgres on one invoice, and someone will watch dyno count. Eco is a reasonable personal sandbox if sleep is fine.
A Team app should budget Basic at minimum and Standard-1X once metrics matter, and it should not expect the smallest RAM to carry a real worker, because that worker is a second dyno.
Choose Render when you want that service list with a free instance that sleeps on a timer. Choose Railway when a stopped process should cost nothing and seats should not multiply the fee.
Choose Fly.io when the region price is the point.
Choose App Platform when the account is already DigitalOcean, and Northflank when previews and a non-sleeping sandbox matter more than the Heroku add-on catalog.
A cluster, rather than a dyno, is the Kubernetes tools decision.
The Devshot brief is the short version of this bill. Subscribe free if you want the next dyno change in the inbox.
Cite this: Devshot, "Heroku Review 2026", September 2026.
Frequently asked questions
Get the Devshot brief
Free daily newsletter, read in 5 minutes.
Subscribe free