Why pricing comparisons are hard — and how to do them honestly
Comparing PaaS pricing fairly is tricky because the platforms bill on different axes. Heroku charges per resource: per dyno, per add-on database, per scheduler. PandaStack charges a flat monthly plan that bundles compute allowances, a database, bandwidth, build minutes, and features. So instead of pretending one number beats another, let's model a few realistic apps.
I'll keep Heroku's figures general and link to their official pricing, because exact dyno and add-on prices change. PandaStack's plan numbers below are authoritative.
PandaStack plans (authoritative)
| Plan | Price | Web services | Static | DB | Bandwidth | Build mins | Backups |
|---|---|---|---|---|---|---|---|
| Free | $0/mo | 5 | 5 | 1 | 100GB | 300 | 7d |
| Pro | $15/mo | per plan | unlimited | included | 500GB | 1000 | 15d |
| Premium | $25/mo | per plan | unlimited | included | 2500 build mins | — | 30d |
| Enterprise | Custom | — | — | — | — | — | — |
Free tier also includes edge functions, 50 DB connections, and 10 days of deploy history. Pro raises connections to 300 and history to 30 days; Premium goes to 1000 connections and 90 days of history.
Compute tiers (for sizing paid apps) run from Free (0.25 CPU / 512 MB, $0/hr) up to C2-2XCompute (8 CPU / 16 GB, ~$0.300/hr, roughly $219/mo), with compute-optimized (c1/c2) and memory-optimized (m1/m2) families in between.
Heroku's pricing shape
Heroku retired its free tier in November 2022 ([Heroku announcement](https://blog.heroku.com/next-chapter)). Today you pay for:
- Dynos — sized tiers billed per dyno, prorated by the second.
- Heroku Postgres — separate plans from hobby to production tiers.
- Add-ons — Scheduler, Redis, metrics, etc., each with their own price.
So a "real" Heroku app cost is typically: dyno(s) + a Postgres plan + any add-ons. See [Heroku pricing](https://www.heroku.com/pricing) for current figures.
Three realistic scenarios
Scenario 1: A hobby project / learning app
- Needs: one small web service, one small database, a scheduled job, low traffic.
- PandaStack: the Free plan covers this — a web service, a database, and cronjobs at $0/mo. Idle apps scale to zero (with a cold start).
- Heroku: no free tier; you'll pay for at least a basic dyno plus a Postgres plan plus the Scheduler add-on.
- Verdict: PandaStack wins decisively for hobby use because the free tier includes a database — exactly what Heroku discontinued.
Scenario 2: A small production SaaS
- Needs: an always-on backend, a production-ish database with daily backups, a static marketing site, a custom domain with SSL, and a couple of cronjobs.
- PandaStack: Pro at $15/mo bundles the database, unlimited static sites, 500GB bandwidth, 1000 build minutes, 15-day backups, custom domains, and SSL. Predictable single line item.
- Heroku: a production dyno + a paid Postgres tier + add-ons. The total depends on your choices and is billed per-resource.
- Verdict: PandaStack's flat $15 is easy to forecast; Heroku's total is a sum of parts that you tune for reliability.
Scenario 3: A heavier app needing real compute
- Needs: a memory- or compute-hungry service running 24/7.
- PandaStack: pick a compute tier; an always-on large box (e.g., C2-2XCompute at ~$0.300/hr ≈ $219/mo) plus your plan. You pay for the compute shape you choose, by the hour.
- Heroku: scale up dyno size and count; cost grows with dyno tier and quantity.
- Verdict: both scale linearly with compute. PandaStack lets you pick explicit CPU/memory shapes (compute- vs memory-optimized); Heroku abstracts to dyno sizes. Compare the specific resource you need.
What's bundled vs. billed separately
| Item | Heroku | PandaStack |
|---|---|---|
| Database | Separate plan | Included in plan (1 on Free) |
| Scheduled jobs | Scheduler add-on | Native cronjobs included |
| Static hosting | App/buildpack | Included (unlimited on Pro+) |
| Edge functions | No native equivalent | Included (all tiers) |
| SSL + custom domains | Included | Included |
| Metrics/analytics | Often add-ons | Included (ClickHouse, server-side) |
The bundling is the real story: PandaStack folds the database, cron, static, edge, and analytics into the plan price, whereas a comparable Heroku setup assembles several billed components.
Honest caveats
- Heroku is more mature; its Postgres and add-on ecosystem are deeper and battle-tested. You may be paying for reliability and breadth you specifically want.
- PandaStack is newer, and free-tier databases are small (dev/hobby storage), with cold starts on free-tier apps.
- Always price your *actual* workload — both platforms scale with compute, and the cheapest option depends on your traffic shape and reliability needs.
Bottom line
For hobby and small-production apps, PandaStack's flat tiers — especially a free tier that includes a database, cron, and edge functions — are typically cheaper and far easier to forecast. For teams that want Heroku's mature ecosystem and per-resource control, Heroku's pricing buys that maturity. Model your own app with both and the right answer falls out.
References
- [Heroku — Pricing](https://www.heroku.com/pricing)
- [Heroku — Removal of free product plans](https://blog.heroku.com/next-chapter)
- [Heroku Postgres — Plans](https://devcenter.heroku.com/articles/heroku-postgres-plans)
- [Heroku Scheduler](https://devcenter.heroku.com/articles/scheduler)
Curious what your app would cost? PandaStack's free tier includes a web service, a database, cronjobs, and edge functions at $0/mo. Try it at [dashboard.pandastack.io](https://dashboard.pandastack.io).