ToolPick
Cloud Hosting

Heroku Pricing in 2026: The Real Monthly Bill

Heroku's dyno menu starts at $5, but a real app - web process, worker, Postgres - lands somewhere between $19 and $100 a month. We live-verified every tier on the pricing page today and recomputed the same workload on Railway and Fly.io so you can see exactly where the money goes and where the Eco tier's sleep behavior bites.

/10 min read
Pricing decision guide

Decision Brief

What to do with this research

89Decision-ready

A typical small production app on Heroku - one web dyno, one worker, one small Postgres - costs $19/month on Basic dynos and $59/month the moment you step up to Standard-1X. The $5 Eco tier cannot carry that workload: its shared 1,000-hour monthly pool is exhausted by a single always-on worker plus a modestly busy web process. The same workload runs for roughly $13/month self-managed on Fly.io and about $25/month metered on Railway, so Heroku's premium is real - you are paying it for managed Postgres and operational simplicity, not for compute.

Best forbuilders choosing infrastructure before they commit to a migration path
ClusterHosting and Data
FreshnessChecked within 30 days
Depth1,855 words / 7 sections
Sources6 official sources checked
Watch this decision

Hosting and Data changes

Get a practical ToolPick alert when pricing, free-plan limits, policy risk, or alternatives change.

Weekly at most ยท one-click unsubscribe

Quick AnswerReconsider

A typical small production app on Heroku - one web dyno, one worker, one small Postgres - costs $19/month on Basic dynos and $59/month the moment you step up to Standard-1X. The $5 Eco tier cannot carry that workload: its shared 1,000-hour monthly pool is exhausted by a single always-on worker plus a modestly busy web process. The same workload runs for roughly $13/month self-managed on Fly.io and about $25/month metered on Railway, so Heroku's premium is real - you are paying it for managed Postgres and operational simplicity, not for compute.

  • Eco: $5/month for a shared pool of 1,000 dyno hours - web dynos sleep after 30 idle minutes, workers never sleep
  • Basic: $7/month per always-on dyno, so web + worker + Essential-0 Postgres = $19/month
  • Standard-1X: $25/month buys the same 0.5 GB RAM as the $7 Basic dyno
  • The first 1 GB dyno is Standard-2X at $50/month - Fly.io sells 1 GB for $5.92 in Amsterdam

Keep reading for the full analysis.

Answer first, then compare

Where this decision goes next

Skip the scroll: the pages most readers open after this one.

Vercel Alternatives 2026: Netlify vs Cloudflare vs RailwayRead the next related article.

The sticker prices, straight from the pricing page

$7/mo
Basic, the honest always-on floor
$59/mo
Standard web + worker + Postgres
1,000 hrs
Eco's shared monthly dyno pool
$50/mo
Standard-2X, the first 1 GB dyno

Heroku still prices the way it did before Salesforce moved it into sustaining-engineering mode in February 2026: a ladder of fixed dyno tiers, each with a flat monthly price and a fixed slice of RAM. That announcement explicitly promised no pricing or billing changes for dashboard customers, which is why the menu below still holds - pulled from heroku.com/pricing today rather than from a blog post that last checked in 2024.

Dyno tierPriceRAMThe catch
Eco$5/month0.5 GBBuys a shared pool of 1,000 dyno hours; web dynos sleep after 30 idle minutes
Basic$7/month0.5 GBAlways on, per dyno - two processes means two Basic dynos
Standard-1X$25/month0.5 GBSame RAM as Basic at 3.6x the price
Standard-2X$50/month1 GBThe cheapest dyno with a full gigabyte
Performance-M$250/month2.5 GBThe jump from Standard is 5x, not incremental
Performance-L$500/month14 GBWhere memory finally gets roomy

Databases are a separate line item. Heroku Postgres starts at Essential-0 for $5/month with 1 GB of disk, moves to Essential-1 at $9/month (10 GB) and Essential-2 at $20/month (32 GB), and then jumps to the Standard tier starting at $50/month for 64 GB. If you cache anything, the Key-Value Store starts at $3/month for a 25 MB Mini plan, with Premium plans from $15/month.

None of those numbers looks scary on its own. The bill only becomes real when you stack the pieces a working application actually needs - which almost nobody does before signing up.

What a real small app costs: web + worker + Postgres

The honest unit of PaaS pricing is not "a dyno." It is the smallest deployable version of a real product: one web process, one background worker (emails, jobs, queues - nearly every production app grows one), and a managed database. Priced three ways on Heroku's current menu:

StackComponentsMonthly total
Budget, always onBasic web $7 + Basic worker $7 + Postgres Essential-0 $5$19/month
Production entryStandard-1X web $25 + Standard-1X worker $25 + Essential-1 $9$59/month
Production, real databaseStandard-1X web $25 + Standard-1X worker $25 + Postgres Standard $50$100/month

That $19-to-$100 range is the number to budget around, not the $5 headline. And notice what the $59 tier actually buys: two dynos with 0.5 GB each - the same RAM footprint as the $19 stack - plus a 10 GB database. The extra $40 is for the Standard tier's platform features, not for compute.

Web + worker + small Postgres, monthly (verified 2026-07-11)
Fly.io self-managed (Amsterdam)
$13/mo
Heroku Basic stack
$19/mo
Railway metered (typical load)
$25/mo
Heroku Standard stack
$59/mo

The comparison bars are the same workload recomputed on rival platforms - the arithmetic is below, with every assumption stated.

Where Eco's sleep behavior actually bites

The $5 Eco plan is the tier most people misunderstand, because it is not a cheaper Basic. Per Heroku's own Eco documentation, the $5 buys a pool of 1,000 dyno hours per month, shared across every Eco dyno on your account. Three consequences follow, and the third one surprises people:

  • Web dynos sleep after 30 minutes without traffic, and a sleeping dyno wakes on the next request with a cold-start delay. Sleeping dynos do not burn pool hours, which is the whole trick that makes $5 stretch.
  • The pool is account-wide, so five toy apps share the same 1,000 hours. That is genuinely generous for demos and portfolio projects.
  • Worker dynos never sleep. They do not serve web requests, so the 30-minute idle rule never triggers. One always-on Eco worker burns roughly 730 to 744 hours in a month all by itself - about three quarters of the entire pool.

Run the numbers on the web + worker shape from the previous section: the worker takes ~744 hours, and a web dyno that is awake even nine or ten hours a day adds ~280 more. You cross 1,000 hours before the month ends, and Heroku's documented behavior at that point is blunt - every Eco dyno on the account is forced to sleep until the next month, and you cannot buy more hours. Your app is simply down. The documented escape hatch is upgrading to Basic at $0.01/hour.

So the Eco tier's real job description is narrow: a single low-traffic web app, or several rarely-visited demos, with no background workers. The moment your project has a queue, a cron loop, or steady daytime traffic, Eco is not a $5 plan - it is a countdown timer. Budget for Basic ($14 for the web + worker pair) from day one.

The RAM ladder is the quiet price trap

Look back at the tier table and follow the memory column instead of the price column. Eco, Basic, and Standard-1X - $5, $7, and $25 - all ship the identical 0.5 GB of RAM. The first Heroku dyno with a full gigabyte is Standard-2X at $50/month, and the next meaningful step is Performance-M at $250 for 2.5 GB.

That ladder shape matters more than any single price. Modern runtimes are memory-hungry - a Rails app with a few gems, a Node service with a heavy dependency tree, or anything running an in-process cache will flirt with 0.5 GB quickly. On Heroku, the fix for "my dyno is hitting its memory limit" is a 2x price jump per process. A web + worker pair that outgrows 0.5 GB goes from $50/month (two Standard-1X) to $100/month (two Standard-2X) in one config change.

For calibration, the same gigabyte elsewhere, verified today: Fly.io sells a shared-cpu-1x machine with 1 GB for $5.92/month in its published Amsterdam pricing, and Railway meters RAM at $10 per GB per month of actual average usage. Heroku's $50-per-GB-ish step is not paying for memory - it is paying for the platform around the memory. That trade can still be worth it, but you should make it with open eyes.

Same workload on Railway and Fly.io, recomputed

Cross-platform price tables usually compare headline tiers, which is how vendors want to be compared. More useful: take the exact web + worker + Postgres stack and recompute it under each platform's actual billing model, with assumptions on the table. Both rival pages were re-fetched today (railway.com/pricing and Fly.io's pricing docs), consistent with our fact-checked baseline figures for both vendors.

Railway charges a subscription plus metered usage: Hobby is $5/month with $5 of usage included, Pro is $20 per seat with $20 included, and the meters run at $10 per GB of RAM per month, $20 per vCPU per month, and $0.15 per GB of volume storage. Assume your three services (web, worker, Postgres) average a combined 1.5 GB of RAM and 0.5 vCPU around the clock, with a 1 GB volume: RAM $15 + CPU $10 + volume $0.15 = $25.15/month on Hobby. That is the "typical load" bar in the chart - and it is honestly not cheaper than Heroku's $19 Basic stack. Railway's advantage shows up at low duty cycles: if the same stack idles near 0.3 GB and 0.05 vCPU on average, metered usage totals about $4.15, which fits inside Hobby's included $5, and your bill is a flat $5. Usage billing rewards spiky little apps and punishes steady loads; our Railway vs Render comparison digs into when that shape helps.

Fly.io prices raw machines by region with no platform fee. Using Fly's published Amsterdam examples from today: a shared-cpu-1x with 512 MB for the web process is $3.32/month, a 256 MB machine for the worker is $2.02, a 1 GB machine running Postgres is $5.92, and a 10 GB volume at $0.15/GB adds $1.50. Total: $12.76/month - the cheapest honest bill of the three, with more total RAM than the Heroku Basic stack. Two caveats keep this honest. First, that Postgres is self-managed: you are running the database on a machine you babysit, which is not equivalent to Heroku's managed Essential tiers (Fly's managed Postgres product is priced separately, and we did not verify its rates today). Second, Fly's paid support starts at $29/month - add it and the price advantage narrows to roughly parity with Heroku's Standard stack. Our Fly.io vs Render breakdown covers who should actually take on that operational trade.

The pattern across all three: Heroku charges the most per unit of compute, Railway charges for what you burn, and Fly charges the least but hands you the pager.

When staying on Heroku is the right call

A pricing article that ends with "migrate" would be dishonest, because at least three situations make Heroku's premium rational in 2026:

  • Your Postgres bill is the product. Essential-0 at $5 and Essential-1 at $9 are genuinely competitive managed-database prices, with backups and maintenance handled. If your app is a thin layer over a database you never want to operate, Heroku's markup on dynos partly buys down database ops you would otherwise pay for in time.
  • Add-on dependence. Years of accumulated add-ons, buildpacks, and pipeline muscle memory have a real replacement cost. A $40/month price gap takes a long time to repay a two-week migration plus the incidents that follow it.
  • The bill is small relative to the team. At $59-$100/month, the entire stack costs less than an hour of engineering time. Optimizing it before product-market fit is effort spent on the wrong problem.

The strategic caveat is platform trajectory rather than price: Salesforce paused active feature development and moved Heroku into sustaining-engineering mode on 2026-02-06, redirecting its strategic focus to Agentforce and AI products. Nothing about today's pricing page is an emergency - the same announcement promised no billing changes for dashboard customers - but paying premium rates on a platform that has stopped shipping new features is a position you should hold deliberately, not by default. Our full Heroku alternatives decision guide maps the exit paths - Railway, Render, Fly.io - by team situation, including when the answer is to stay put.

The bottom line

Pick this
Basic dynos + Essential Postgres at $19/mo
The honest Heroku floor for a real always-on app - Eco's shared 1,000-hour pool cannot carry a web + worker pair through a full month.
Look elsewhere if
Any app that needs more than 0.5 GB per process
The first 1 GB dyno is Standard-2X at $50/mo, verified today - Fly.io sells the same gigabyte for $5.92 and Railway meters it at $10/GB.

Heroku's 2026 pricing is not hiding anything - every number here sits in plain sight on the pricing page. The traps are structural instead: an Eco tier whose 1,000-hour pool quietly excludes background workers, a RAM ladder that charges $25 for the same half-gigabyte Basic sells for $7, and a $50 toll at the first full gigabyte. Budget $19/month for a hobby-grade always-on stack, $59 for the Standard entry point, and around $100 once your database earns a Standard Postgres plan. If those numbers annoy you, the alternatives are real and cheaper - but recompute them with your actual duty cycle and your actual appetite for database ops, because that is where the comparison is won or lost, not at the sticker.

All prices verified directly against heroku.com/pricing, Heroku's Eco dyno documentation, railway.com/pricing with Railway's published usage rates, and Fly.io's pricing documentation on 2026-07-11.

USD 1 Decision Check

Need one outside check before you choose?

Use Polar checkout, then email one narrow buying question. ToolPick replies with one practical buyer-risk answer and the next action: buy, trial, delay, compare, or ask a vendor.

Buy USD 1 answerRead sample first

No subscription. Manual email answer. If the question is outside one software decision, ToolPick will say so before work starts.

Vendor? Run free check
  1. PayUse Polar checkout. No subscription.
  2. SendEmail help@neogenesis.app with the order ID and one narrow question.
  3. ReceiveGet one manual buyer-risk answer by email and the next action.
  • One concrete tool, pricing, stack, or alternative question.
  • One concise buyer-risk answer by email after checkout handoff.
  • One next step: buy, trial, delay, compare, or ask a vendor.
Example questionShould I pick PostHog, FullStory, or a lighter replay tool if privacy and price jumps are the risk?

๐Ÿ“ฌ Get the Weekly SaaS Digest

New tool reviews, pricing-change alerts, and stack cost tips โ€” one email a week, one-click unsubscribe. No spam, no fake urgency.

Continue the research

Turn this article into a decision path

Every ToolPick article should lead to a second useful page: another article, a hub, or a calculator action.

Vercel Alternatives 2026: Netlify vs Cloudflare vs RailwayRead the next related article.

Related Articles