PreviewDrop vs Heroku Review Apps
The Heroku Review Apps successor for Rails teams in 2026
Heroku Review Apps were the gold standard for per-PR previews — automatic deploys, disposable dynos, a URL in the PR. But Salesforce deprioritised the Heroku platform and many teams are migrating. PreviewDrop gives you the same experience with Docker, flat pricing, and no platform lock-in.
TL;DR
Heroku Review Apps let you spin up a disposable app for every PR — automatic deploys, the
app.jsonmanifest, and a URL posted to the PR. It worked well for years. But Heroku's roadmap has been quiet since the Salesforce acquisition, its free tier was removed, and many teams are looking for a modern replacement that doesn't tie them to a PaaS they can't trust long-term. PreviewDrop is that replacement.Feature-by-feature
| Feature | PreviewDrop | Heroku Review Apps |
|---|---|---|
| Preview per PR | Automatic | Automatic (app.json) |
| PR comment with URL | Built-in | Built-in |
| Auto-destroy on merge | By branch lifecycle | Configurable |
| Docker support | Any Dockerfile or auto-detect | Via heroku.yml (limited adoption) |
| Framework support | Anything in Docker | Ruby, Node, Python, Java, PHP, Go, Scala, Clojure |
| Background workers | Multi-project per repo | Worker dynos via Procfile |
| Managed Postgres per preview | Bring your own DB | Heroku Postgres addon |
| Free tier | 2 concurrent previews | Free tier removed |
| Pricing model | Flat $19 / $79 / $149 per workspace | Per-dyno-hour + per-seat (Teams) |
| Platform lock-in | Docker — runs anywhere | Heroku-specific buildpacks & runtime |
| Stack auto-detection | No config needed | Buildpack auto-detection |
| Password-protected previews | One toggle | Requires custom middleware |
| Config vars per branch | Built-in | Via app.json env section |
| CI minutes | Unlimited builds | Billed as dyno hours |
Comparison last verified May 2026. Pricing and feature details change — for current numbers check Heroku Review Apps's own pricing page.
What's actually different
The Heroku sunset concern
Salesforce acquired Heroku in 2010 and for years it was the default Rails host. Since ~2022 the investment has visibly slowed: the free tier was removed, the roadmap is quiet, and key Heroku alumni have left. The platform still works, but teams building on it today are betting on a product whose parent company has different priorities. PreviewDrop runs standard Docker images — no Heroku-specific buildpacks, no Procfile lock-in, no dyno model to migrate away from later.
Docker vs buildpacks
Heroku Review Apps use buildpacks to detect your stack and produce a slug. This works reliably for supported stacks, but custom dependencies (system packages, native extensions, non-standard runtimes) require the Buildpack API or a container registry integration. PreviewDrop uses Docker: your Dockerfile is your build definition, identical to production. No buildpack limitations, no slug size caps, no runtime surprise when a buildpack updates.
Cost predictability
Heroku bills per dyno-hour. A team with 5 engineers, each running 2–3 review apps during a workday, can rack up significant dyno-hours — and the bill varies month to month. PreviewDrop Starter is $19/month flat regardless of how many previews you spin up. Pro is $79/month. The price doesn't move when QA does an all-day testing sprint.
When Heroku Review Apps are still the right choice
If your production app is already hosted on Heroku and you're happy with the platform, Review Apps are well-integrated and proven. If you use Heroku Postgres, the per-preview DB provisioning is genuinely useful. In every other case — especially if you're on AWS, GCP, Railway, Render, or Fly for production — PreviewDrop is a more portable, more predictable tool.
Migrating from Heroku Review Apps
Replace your
app.json with a Dockerfile. Move your env vars from app.json's envsection into the PreviewDrop Variables tab. The Procfile is no longer needed — your Dockerfile CMD defines the process. If you use Heroku Postgres, you'll need to point DATABASE_URL at a shared dev DB or a Neon branch. Setup time from scratch: one afternoon.What Heroku Review Apps users struggle with
Dyno-hour bills that surprise you
Heroku charges per dyno-hour. A review app that sits idle during lunch still costs money. Over a month, 5 engineers with 3 review apps each can easily exceed $200 in dyno costs alone.
Buildpack version drift
Your app builds fine locally in Docker. On Heroku, the Ruby buildpack version is slightly different and a native extension fails to compile. Debugging this means reading Heroku build logs and hoping the buildpack maintainers accept your issue.
app.json as config sprawl
Every env var, every addon, every buildpack override lives in app.json. As your app grows, this file becomes a second source of truth for infrastructure config — and it diverges from what you actually run in production.
Platform uncertainty
Heroku's long-term roadmap isn't public. Teams that bet their preview pipeline on it are also betting their engineering workflow on a platform that may not be actively developed in 2 years.
How PreviewDrop replaces Review Apps
1
Add a Dockerfile
If your Heroku app already has a Dockerfile, skip this. If not, PreviewDrop auto-detects Rails, Django, Laravel, Node, Go, and more — no config needed.
2
Connect your repo
Authorize PreviewDrop on GitHub. Set your env vars in the Variables tab. That replaces app.json's env section and the Heroku dashboard config vars.
3
Push and share
Every branch gets a live HTTPS URL auto-posted to the PR. Preview destroys on merge or per your plan TTL. No dyno-hour math, no buildpack surprises.
Try PreviewDrop free
Connect a repo, push a branch, get a preview URL. No credit card, no trial clock.
Start free