Heroku runs on dynos — isolated compute containers on top of AWS. The interface is CLI-first, and each application is its own isolated unit of deployment. For its time, the architecture was genuinely elegant: git push heroku main, and your app was live, no SSH required. That's what made it the default for an entire generation of developers.
The architecture is mature and predictable, but it comes with compromises you need to understand upfront:
Heroku killed free usage entirely in November 2022. Entry tiers are now Eco ($5/month) and Basic ($7/month) with fixed resource allocations, while databases are billed separately: the Essential-0 Postgres plan runs $5/month, while Mini Redis adds another $3/month.
Moving to production-grade Standard resources increases costs: $25+/month per dyno and $50+/month for the database. Running 2.5 GB of RAM for your application lands you around $250/month.
The Reddit consensus on Heroku is consistent: it remains the gold standard for "deploy it and never think about infrastructure again." That's a real value proposition for those who want to completely insulate themselves from DevOps and server administration.
The main point of criticism is the high cost of scaling. The bills are literally painful to look at compared to current VPS prices (starting at $10 a month for the necessary configuration). This is forcing even long-term customers to migrate away from the platform.
Railway uses workload-based orchestration: resources are allocated dynamically based on actual consumption, without requiring you to manually select machine sizes:
People like Railway for its visual canvas interface, one-click database deployment, and GitHub import. All services in a project — backend, database, frontend — are visible in a single workspace, visually connected, with secrets isolated per service but easily inherited where needed.
Persistent storage uses incremental copy-on-write snapshots, so you're only billed for changed data. The built-in global private network is included on all plans and automatically routes traffic to the nearest region. Railway also operates its own hardware in data centers, which cuts out the cloud middleman markup.
Railway closed its free tier in 2023. The Hobby plan is $5/month, which converts entirely to compute credits. Pro requires a $20/month base fee per organization, plus charges for actual vCPU and RAM consumption. Outbound traffic costs $0.05/GB after the first 100 GB.
The financial risk with Railway is the unpredictability of the final bill. There are no hard spending limits by default. A looping background job or an unexpected traffic spike will run up a bill before you notice.
The second real risk is network latency. Based on developer reports from r/rails, teams migrating monolithic Heroku apps have documented network queueing at 150–200 ms per incoming request versus roughly 40 ms on equivalent Heroku setups. The strong recommendation from that community is to run proper load testing before committing to a full migration.
Railway works well for product teams and startups where iteration speed matters more than infrastructure cost predictability — as long as you have consumption monitoring in place.
Coolify is an open-source, self-hosted PaaS platform built on Laravel and deployed on your own VPS or dedicated server. It gives you a Heroku-like interface without the Heroku-like bill, since you pay only for the compute you rent.
The orchestration layer is Docker, Docker Compose, and Docker Swarm, with no vendor lock-in by architecture. Application builds use Nixpacks with automatic framework detection. One server acts as the control plane, while additional servers function as worker nodes for running your Coolify apps. One architectural constraint worth knowing: nodes must be either all AMD64 or all ARM — you can't mix architectures.
The web panel combines PaaS simplicity with access to lower-level controls: memory and CPU allocation, reverse proxy configuration, and private networking. Database backups for PostgreSQL, MySQL, MongoDB, and Redis are a native panel feature. You can configure scheduled dump exports to any S3-compatible storage with retention rotation.
Coolify itself is free. Coolify Cloud offers a managed control panel instead of a self-managed one (for less maintenance), starting at $5/month for two servers.
When calculating TCO, factor in that the panel itself consumes around 500 MB of RAM plus some CPU. For stable application performance during builds, you need at least 4 GB of RAM on the host, as recommended in most Coolify reviews.
Coolify supports 280+ services with one-click deployment. Most Docker Compose apps work with minimal changes. With Coolify hosting, you can run dozens of containers and databases on a single VPS that costs a fraction of a managed PaaS.
It's the tool that removes the last excuse for overpaying major cloud providers. For pet projects, internal tools, and indie stacks with predictable traffic, it's hard to argue against it.
Running Coolify apps means you're responsible for the operational state of the underlying server. That's the main constraint. Everything else follows as a consequence of it.
*According to the editors of the is*hosting blog
Coolify is a good fit if you understand how Linux works and you're comfortable restarting a proxy or digging through Docker configs when something breaks. If you want zero contact with server administration, this platform isn't for you. That's the main point in every Coolify review.
If you're still reading: the shortest path is a VPS with Coolify pre-installed. Minimum spec is 2 GB RAM, but starting with 4 GB gives you enough headroom for initial experiments without running into build OOM issues.
Choose the Coolify image in the OS section before ordering. Get a VPS with Coolify pre-installed. ~15 min deploy.
|
Criteria |
Heroku |
Railway |
Coolify (Self-hosted) |
|
Base plan |
Eco ($5/mo) / Basic ($7/mo) |
Hobby ($5/mo, includes $5 credit) |
Free (Coolify hosting cost only) |
|
Database cost |
Essential-0 Postgres ($5/mo) |
Billed per actual resource use |
Free (within host resources) |
|
Outbound traffic |
Additional billing |
$0.05/GB after first 100 GB |
Depends on the Coolify hosting provider (often unlimited) |
|
Est. annual TCO (3 apps, 2 DBs) |
~$1,080 (Standard resources) |
~$360-$720 (Pro + average usage) |
~$120-$180 (4 GB RAM VPS) |
The gap between Heroku and self-hosted Coolify is 3–9x annually. That math is accurate only if you have someone who can keep Coolify running. If you don't — add their time to the calculation.
It all depends on your project, your budget, and a few tradeoffs.
You're running an enterprise team with an established monolith on AWS, no DevOps bandwidth, and a business where billing predictability matters more than bill size. For everyone else, the cost gap is too large to ignore.
You're a product team or startup that needs fast iteration and a solid developer experience without touching infrastructure. And you've confirmed through load testing that latency is acceptable for your use case. Keep spending limits in view.
You're a developer or small technical team that wants a self-hosted PaaS platform with PaaS-level convenience and VPS-level costs. Good for indie stacks, internal tools, and self-hosted software with predictable traffic patterns. As a cheap Heroku alternative and self-hosted Heroku alternative, it's the most cost-effective option available, with the explicit understanding that you're taking on operational responsibility. Choose Coolify Cloud if you don't want to deal with self-hosting.
If Coolify is where you're headed, we have Coolify hosting (VPS) with a pre-installed image — provisioned in ~15 minutes.