Before settling on Coolify, I seriously evaluated several alternatives:
Vercel + Railway — the obvious combo for a Next.js + Node stack. Vercel is exceptional for the frontend, but Railway's pricing becomes unpredictable at scale, and splitting infra across two platforms means double the vendor relationships, double the config, and no single place to see what's running.
Render — clean UX, good DX, but the free tier is sleep-based and paid plans add up fast once you need persistent services. Still vendor lock-in, still no control over the underlying machine.
Heroku — the grandfather of the category. Post-acquisition pricing killed it for most indie projects. Hard pass.
CapRover — the closest self-hosted alternative. Solid, but the UI feels dated, the community is smaller, and it lacks some of Coolify's polish around multi-environment management and first-class database support.
Kamal (by 37signals) — powerful, but it's CLI-first and assumes you're comfortable writing deploy config by hand. Great for teams with DevOps experience; less friendly for solo developers who just want things to work.
What made Coolify win: it's the only option that combines a genuinely modern UI, GitHub-native CI/CD, automatic HTTPS, one-click databases, and full self-hosting — all without requiring you to become a Docker expert first. The community is active, updates ship fast, and the founder is genuinely responsive.
It's not perfect — the learning curve exists — but no alternative came close to this combination at this price point (essentially: cost of a VPS).