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

FeaturePreviewDropHeroku 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-detectVia heroku.yml (limited adoption)
Framework supportAnything in DockerRuby, 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 modelFlat $19 / $79 / $149 per workspacePer-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 minutesUnlimited buildsBilled 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.
See the numbers
Full plan comparison on the Pricing page. Setup walkthrough in the Quickstart docs.

Try PreviewDrop free

Connect a repo, push a branch, get a preview URL. No credit card, no trial clock.

Start free