
PaaS vs. Self-Hosting: Why Developers Are Taking Back Control
Your no-BS weekly brief on software engineering.
Join 100,000+ developers
There was a time when Heroku felt like magicâpush your code, and your app was live. No servers to manage, no deployment headaches, and a free tier that gave developers a playground to experiment, build, and launch without worrying about infrastructure. But that era is over.
With the free tier gone and prices rising, what was once effortless now feels restrictive. And with modern DevOps tools, itâs worth asking: does Heroku even make sense anymore?
But this shift isnât just about Heroku. Self-hosting is evolving. Tools like Kamal are making deployment as simple as Herokuâbut without the costs, restrictions, or lock-in.
The Leased Car Problem: Convenience Always Has a Cost
Heroku is like leasing a car. At first, the convenience feels worth it. No maintenance, no upfront costsâjust get in and drive. Now, this car isn't necessarily new, nor is it particularly fast. That's okay â we're just looking for something simple.
But over time, the downsides stack up:
- You're locked into their pricing.
- Customizations? Limited.
- Want to switch? Good luck migrating your entire workflow.
And just like a lease, you never actually own anything. Meanwhile, tools like Kamal make running your own infrastructure feel as effortless as a PaaSâwithout the hidden costs and lock-in.
Enter Kamal: PaaS-Level Simplicity, Zero Lock-In
Kamal is a zero-downtime deployment tool from the creator of Rails, but itâs not Rails-specific. Whether youâre deploying a Rails app, a Go app, or something entirely different, Kamal makes it effortless.
DHH even shared a demo of deploying a Go app in just a few commandsâno Kubernetes, no complexity, and no PaaS lock-in.
With Kamal, you can:
â
Deploy with Docker and SSHâno Kubernetes overhead.
â
Scale apps across bare metal or cloud providers.
â
Get zero-downtime deploys without deep DevOps knowledge.
â
Avoid vendor lock-in and own your entire stack.
Herokuâs biggest selling point was ease of use. Kamal gives you thatâno matter what youâre building.
The PaaS Illusion: Paying More for Less Control
PaaS promised effortless deployment, auto-scaling, and managed services. But hereâs what you really get:
â You're locked in. Moving off a PaaSâwhether itâs Heroku, Fly.io, or Renderâcan be painful.
â Costs scale faster than value. At first, the pricing looks reasonable. Then your app growsâand so does the bill.
â Youâre still on the hook for downtime. When things break, youâre stuck waiting for a provider to fix it.
At some point, you have to ask: is paying for convenience really worth losing control?
âDeveloper-Friendlyâ Hosting? More Like âVendor-Friendlyâ
Some newer PaaS options, like Fly.io, market themselves as more cost-effective. They even offer "cost forgiveness"âa safety net for accidental overspending.
Sounds generous, right?
đš Itâs like a casino comping your first bad bet.
"Oops, you spent too much? Donât worry, weâll waive itâjust this once."
The system isnât built for predictabilityâitâs built for reactive spending. Instead of giving you control, it keeps you guessing:
- Am I over budget?
- How much will this cost next month?
- What happens if I need to scale?
Compare that to self-hosting with Kamalâwhere your costs are fixed, your infrastructure is yours, and youâre not at the mercy of a pricing algorithm.
Goodbye PaaS, Hello Ownership
PaaS made sense when self-hosting was hard and DevOps was a full-time job. But today, tools like Kamal let you own your deployment pipelineâwithout the hidden costs, vendor lock-in, or scaling surprises.
So the real question isnât just âWhatâs the easiest way to deploy?ââitâs who do you want in control?
With PaaS, you trade control for convenience. But that convenience is shrinking, and the costs keep rising. Meanwhile, Kamal gives you the simplicity of Herokuâwithout the leash.
Or as DHH put it at Rails World:
It's more fun to be competent.
And with Kamal, that competence has never been easierâno matter what youâre building.
Want to Go Deeper?
If youâre interested in how Rails itself is embracing this shift, check out A Rails Renaissanceâwhere I break down the resurgence of Rails.