Self-hosting a PaaS used to mean Capistrano scripts, Ansible playbooks, and a weekend of yak-shaving every time you wanted to ship. Coolify, an open-source project from coollabsio, collapses that into a web UI that runs on your own server and gives you push-to-deploy for around 280 services — databases, static sites, Next.js apps, Laravel, Strapi, n8n, the full grab bag.
We spun up Coolify on a $6/month Hetzner CX11 to see whether "Vercel alternative" is marketing or accurate. Short answer: it's accurate enough that the real question becomes whether you actually want the responsibility, not whether the tool can do the job.
What Coolify Actually Does
Coolify is a self-hosted application platform. You point a VPS at the install script, give it SSH access, and it installs Docker plus a control plane. From there you connect a Git repo (GitHub, GitLab, Gitea, or self-hosted), pick a build pack (Nixpacks, Dockerfile, Docker Compose, or static), and Coolify handles the rest: builds the image, runs the container, terminates TLS via Traefik with automatic Let's Encrypt certs, and exposes the app at a domain you specify.
The 280+ "services" number — drawn from the project's own catalog of one-click installs — covers prebuilt templates for things like Postgres, MySQL, MongoDB, Redis, MinIO, Plausible, Umami, Ghost, WordPress, self-hosted Supabase, and roughly two dozen developer tools. You can also deploy any Docker image or any Git repo with a Dockerfile, which is the path most production apps actually take.
The deploy UX itself: push to main, Coolify receives the webhook, builds the container, runs a health check, and swaps traffic. Rollback is one click. Build logs stream in the browser. Environment variables are stored in the database with the option to mark them as build-time vs. runtime. This is the Vercel/Heroku surface developers actually feel — and Coolify replicates most of it.
Coolify is licensed Apache 2.0 and runs entirely on your own infrastructure. There is also a hosted "Coolify Cloud" tier if you want the UI without provisioning a VPS yourself, but it still deploys workloads to servers you own.
Where It Beats (and Breaks Against) Vercel/Heroku
The economic case is the easy one. A Heroku Standard-1X dyno is $25/month per process. Vercel Pro is $20/user/month, and bandwidth overages add up fast on a static site that gets hugged on Hacker News. On a single $6 Hetzner box, we ran Coolify itself, two Next.js apps, a Postgres database, and a Plausible Analytics instance — total monthly cost $6, with CPU under 30% during normal traffic.
Where Coolify loses: anything Vercel does at the edge. There is no global CDN included. You get a single-origin server with whatever caching headers your app sets, plus optional Cloudflare in front. ISR, image optimization, and edge functions are not part of the deal. If your app is a marketing site that needs to be fast in Singapore and São Paulo from the same origin, you are layering a CDN yourself.
The other honest tradeoff: you are the SRE now. When the VPS provider has a network blip, Coolify's UI is unreachable until it comes back. When Docker eats disk space (which it does), you're the one running docker system prune. The project ships a built-in backup feature for databases, but you still need to test restores. We hit one issue during testing where a deploy got stuck in "building" — fixed by restarting the Coolify container, but the kind of thing a managed PaaS would silently absorb.
Build performance is mid. A cold Next.js build on the CX11 took about 3 minutes; Vercel does the same in roughly 90 seconds with parallel build infrastructure. If your app builds frequently, a bigger box is the answer, and you can still come out ahead on cost — a Hetzner CCX13 with 2 dedicated vCPUs is around $13/month and roughly halved our build times.
The team and collaboration story is thinner than Heroku's. You can add members and assign roles, but audit logs and permission granularity lag behind what enterprise teams expect. For a solo developer or a 2–5 person team, this is fine. For a company with compliance requirements, you'd want to look harder.
Who Should Self-Host This (and Who Shouldn't)
Self-hosting Coolify makes sense when at least two of these are true: your monthly PaaS bill is over $100, you have side projects that don't justify per-app SaaS pricing, you want to run services (Plausible, Umami, Ghost, n8n) that you'd otherwise pay $20–$50/month each for, or you have a regulatory reason to keep data inside your own infrastructure.
It does not make sense if you are a solo dev with one production app, you have no Linux comfort, and your time is worth more than $25/month. The pitch of managed PaaS is that someone else handles the boring parts. Coolify hands those back to you in exchange for cash.
A reasonable middle path we'd suggest: keep production-critical apps on Vercel or Fly.io, and use Coolify for the long tail — internal tools, staging environments, side projects, self-hosted SaaS replacements. That combo gets you the cost savings on workloads where uptime isn't existential, without betting your business on a single self-managed box.
Run Coolify on a server with at least 2GB of RAM and 20GB of disk. The minimum spec on a $4 VPS will work for a week and then OOM-kill your containers under any real build load. Hetzner CX21 (4GB RAM, around $7/month at last check) is the sane floor for anything you care about.
The migration path off Heroku is straightforward for most apps: Coolify reads a Dockerfile or a Procfile-style build pack, accepts Postgres dumps via the database UI, and handles env vars in a single screen. The pain is in the operational rituals — log aggregation, alerting, on-call runbooks — that you now own end-to-end. Plan a half-day per app for the first migration; subsequent ones get faster.
One genuine surprise during testing: the developer experience for managing services like Postgres is nicer than Heroku's. You get a real config screen, automated backup scheduling to S3-compatible storage, and a one-click "spawn a new database" flow that doesn't involve the CLI. For data-heavy apps, this alone is worth the switch.
Originally published at pickuma.com. Subscribe to the RSS or follow @pickuma.bsky.social for new reviews.
Top comments (0)