The migration from Heroku to self-hosted PaaS
Teams are migrating from Heroku to self-hosted alternatives like Coolify due to rising costs and platform stability issues. While a Heroku setup with basic services can cost $89 per month, Coolify offers a dashboard-driven experience with over 60,300 GitHub stars.
I see teams leaving Heroku because the pricing model creates a heavy burden as applications scale. Heroku ended its free plans in late 2022, which changed the default choice for early MVPs and hobby projects. The "dyno tax" forces developers to pay for every component they add to their stack. A setup with one web process, one background worker, a production Postgres database, and a Redis store costs $89 per month on Heroku. This total includes $7 for a basic dyno, $25 for a standard dyno, $50 for a production Heroku Postgres Standard-0 plan, and $7 for a worker dyno. Salesforce moved Heroku into a sustaining engineering phase in February 2026, which prioritizes stability over new feature development. This shift, combined with the June 10, 2025, outage that blocked platform access for hours, makes many teams question their long-term investment. Users look for alternatives because of cost, predictability, and reliability. As traffic grows and teams add workers, the bill becomes harder to ignore. Heroku’s abstraction of the cloud provider prevents users from using private networking, strict compliance, and static IP addresses. Heroku is also built on AWS infrastructure, which creates a sense of a one-way door for some stacks and add-ons.
Coolify and the self-hosted alternatives
Coolify has over 60,300 GitHub stars and a catalog of more than 280 one-click services. It allows you to deploy any Git repository or Docker service to a Hetzner VPS or a DigitalOcean droplet with automatic SSL and backups. I find that Coolify provides a better user experience than Dokku, which remains a CLI-only tool that requires more manual configuration for those who prefer a dashboard. Coolify has a tooling gap because it does not bundle analytics, error tracking, or session replay. You must add separate tools like Sentry at $26 per month, Plausible at $9 per month, or FullStory at $99 per month to achieve the observability that a platform like Temps provides in a single Rust binary. In late 2025, an authenticated command injection vulnerability, CVE-2025-66213, was discovered in the File Storage Directory Mount Path functionality, which allowed users to execute arbitrary commands as root. The developers fixed this issue in version 4.0.0-beta.451. Dokploy is another alternative that uses an AI-powered Docker Compose generator to write deployment configs from natural language descriptions. Dokploy has reached 6 million Docker Hub downloads and works well for teams that prefer native Docker Compose projects. CapRover is a lighter alternative that runs on 1GB of RAM and offers one-click simplicity. Temps is the only platform on the market that bundles git-push deployments with built-in analytics, error tracking, session replay, and uptime monitoring.
| Feature | Coolify | Dokku | Dokploy |
|---|---|---|---|
| License | Apache 2.0 | MIT | Apache 2.0 |
| GitHub Stars | 60,300 | 32,000 | 35,000 |
| Minimum RAM | 2GB | 1GB | 2GB |
| Deployment Type | Docker | Git push | Docker Compose |
Managing the operational trade-offs
The decision to self-host involves a trade-off between lower monthly invoices and higher engineering hours. I calculate that a $6 DigitalOcean droplet running Dokku costs much less than a managed PaaS on paper, but the time you spend on kernel updates, Docker upgrades, and certificate renewals can quickly erase those savings. You must handle OS patching, Docker upgrades, TLS renewals, and database backups yourself. Coolify does not automatically install updates for the underlying server OS, so you must manually click the update button in the dashboard. This task can eat into the time you save by avoiding the Heroku bill. If an engineer at a $100 hourly rate spends two hours a month on maintenance, the cost advantage of a $6 VPS diminishes. You should consider the difference between your cloud bill and your engineering hours. Does the convenience of a managed platform justify the 50% markup?
The ownership model, not the headline entry price, is what decides your cost at 20 services. Managed PaaS platforms like Railway, Render, and Fly.io stay the cheapest option up to roughly 10 to 20 services. A managed PaaS stays the cheapest option until per-service pricing, managed-database markup, and the inability to apply your own cloud discounts flip the math. Railway’s Hobby plan is a $5 per month subscription that includes $5 of usage each month. Render’s paid web service instances start at $7 per month for the Starter size. Fly.io offers machines starting from $2.02 per month for a shared-cpu-1x with 256 MB RAM. I recommend Coolify for teams that need a wide app catalog and want to maintain full control over their data. Railway is the best choice if you want the fastest migration with minimal learning. For those needing the easiest migration from Heroku, Render is the best option. Fly.io is the choice for those who need global low-latency.