Wonsuk Choi
blog

Coolify vs Vercel: I Moved 8 Projects — Here's the Real Cost Difference (2026)

I moved 8 apps from Vercel to Coolify — from $50+/mo to $30/mo. Full cost breakdown, what you actually give up, and who should stick with Vercel.

Coolify vs Vercel: A Direct Comparison#

I moved 8 projects off Vercel Pro to Coolify on a single Hetzner server. Here's what I actually spent, what the switch cost, what broke, and what got faster — with real numbers from my setup.

The Numbers, Side by Side#

Vercel HobbyVercel ProCoolify on Hetzner CX42
Monthly cost$0$20 + usage (per-site billing)$29.99 + $3 volume = $32.99
Projects1 siteBilled per usage, per siteUnlimited
Build minutes100/mo6,000 free, then $0.05/minGitHub Actions (2,000 free/mo)
Bandwidth100 GB1 TB, then $0.15/GBIncluded
Scaling costFreeGrows with every site and every deployFlat, always
SSL + domainsManagedManagedManaged via Let's Encrypt
Preview deploymentsAutomatic per branchAutomatic per branchRequires config
Setup timeMinutesMinutesA few weekends
Ops overheadNoneNoneOngoing (yours)

The headline: Hobby is genuinely free for one small site. Pro starts at $20/month and then bills per site. My bill crossed $50/month with 8 active projects — and the comparison gets worse the more sites you add, because every additional Vercel site carries its own Pro price.

My actual setup: one Hetzner CX42 (8 vCPU, 16 GB RAM, 320 GB disk, Nuremberg — $29.99/month) plus a 60 GB volume for Docker data ($3/month). Total: $32.99/month, flat, for all 8 sites — and it doesn't change whether I add 2 more or 20 more.

The Migration Story: What I Moved Off Vercel#

I didn't plan this as a cost exercise — it started with one client site that kept hitting Vercel's bandwidth limits. By the time I'd paid the overage bill twice, the math was done. Here's how the migration actually went, project by project:

The first move (took a weekend): pick the smallest, least critical site. Set up the Hetzner box, install Coolify, connect the GitHub repo, copy env vars, point the DNS record, wait for Let's Encrypt. First deploy works, you feel great.

What broke (and this is the part nobody writes about):

  • Edge functions and middleware rewrites. Vercel's vercel.json rewrite rules don't map 1:1 to anything on Coolify. My multilingual site had locale rewrites in vercel.json that silently stopped working — I had to move them into Next.js's own middleware.ts (or next.config.ts rewrites) instead. This is the #1 migration gotcha.
  • Cron jobs. Vercel crons are scheduled functions. On Coolify they don't exist — but scheduled tasks (curl commands) replace them trivially. I now run my IndexNow pings and sitemap submissions as Coolify scheduled tasks.
  • Preview deployments. Vercel gives every PR a URL automatically. Coolify can do it (per-branch environments) but you have to configure it. For solo work I mostly skipped this — the tradeoff barely matters when you're the only reviewer.
  • Database connections. This was the fastest win. Vercel apps connect to Supabase over the public internet; the same app on the same server as nothing else changed. But once I started running other services on the box, co-locating Postgres-adjacent workloads became trivial.

What was faster (genuinely surprising):

  • Deploys stopped cold-starting. Docker containers are always-on. No Lambda-style cold start, no function spin-up on first request.
  • Background jobs became free-form. Edge functions can't run arbitrary workers; a server can. My ops dashboard syncs, SEO checks, and backup scripts all run on the box now.
  • The feedback loop tightened. SSH in, docker logs, done. No waiting on a platform UI.

What cost real time: the first server setup (a weekend, mostly learning), and one middleware migration that took an evening to debug. Everything after that was copy-paste: add site → connect repo → copy env vars → point DNS.

Feature Comparison: Deploy Model, Databases, Cron, Multi-Site, Lock-In#

CapabilityVercelCoolify
Deploy modelGit push → build → serveGit push → build → Docker container
BuildsOn Vercel's infra (6,000 free min/mo on Pro)On your server, or offloaded to GitHub Actions
DatabasesExternal only (Supabase, Neon, etc.)External, or co-located on the same box
Cron / scheduled jobsEdge functions onlyCoolify scheduled tasks (curl) + full cron
Background workersNot really possibleDocker containers, workers, anything
Multi-sitePer-site Pro billingUnlimited on one server
Lock-inNext.js-optimized, but platform-specific features (edge, ISR tuning)Portable Docker images, no platform lock
Team workflowExcellent (previews, roles, audit logs)Basic — built for solo devs

Is Coolify Cheaper Than Vercel?#

Yes, once you're running more than 2-3 projects. Below that, Vercel's free tier is usually cheaper — server costs and your own time aren't free either. My break-even was around project 3: a flat $32.99/month Hetzner box got cheaper than Vercel's usage-based Pro billing the moment I added a third active site, and stayed flat as I added five more.

The compounding part: on Vercel every new site is another Pro line item; on Coolify the ninth site costs exactly nothing. At my current scale the annual difference is roughly $600/year on Vercel vs ~$396/year on Hetzner — and the gap grows with every new deploy, every new client, every new overage.

Can You Self-Host Vercel?#

Not really — Vercel is a hosted platform, there's no downloadable version to run on your own server. What people usually mean by "self-hosted Vercel" is a tool that replicates its developer experience (git push → deploy, environment variables, preview URLs, managed SSL) on infrastructure you control. Coolify, Dokku, and CapRover are the main options; Coolify is the closest match to Vercel's actual workflow of the three.

What Vercel Gives You#

Vercel is a managed deployment platform built specifically for Next.js. Push code, it deploys. Build infrastructure, CDN, SSL, edge functions — all handled for you.

The free plan is genuinely good for one or two personal projects. Once you're on Pro ($20/month base), usage charges stack on top: build minutes, edge function invocations, bandwidth. With multiple active projects, the bill grows independently per project — which is exactly the pricing model that made me leave.

Use Vercel if:

  • You have 1-2 products and the free plan covers you
  • You're running a high-traffic app where the edge CDN gives a meaningful latency advantage
  • Server operations aren't something you want to think about

What Coolify Gives You#

Coolify is an open-source platform you run on your own server. It replicates the core Vercel workflow — Git-connected deployments, environment variable management, SSL via Let's Encrypt, domain routing — but you manage the underlying server.

The real unlock isn't the dashboard. It's that the server is yours: I run Umami analytics, my personal ops dashboard's supporting services, scheduled tasks, and backups all on the same $32.99 box that serves the sites. None of that was possible (or affordable) on Vercel. The ops dashboard post covers the architecture; the short version is that consolidating infrastructure onto one owned server changed how much I could automate.

Use Coolify if:

  • You're managing 3+ projects (the economics flip quickly)
  • Hosting cost comes out of your margin (client work, agencies)
  • You have some Linux/Docker experience or you're willing to learn it

What You Give Up With Coolify#

No global edge network. Vercel routes through a worldwide CDN. Coolify runs on one server in one region. Cloudflare as a proxy closes most of the gap for static assets, but it's not the same as Vercel's edge for dynamic routes.

No automatic preview deployments. Vercel creates a preview URL per pull request automatically. Coolify can do it but needs configuration.

Real ops overhead. Coolify is infrastructure with a dashboard — not a product. Docker networking, nginx proxy config, server updates: these become your problem. Budget a few weekends to get comfortable before going production.

Build CPU competes with serving. I offload builds to GitHub Actions (2,000 free minutes/month on private repos) to keep server CPU free for live traffic.

Backups are on you. Vercel backs up nothing you'd miss; a self-hosted server can lose everything in one bad rm. My backups are a scheduled task that dumps volumes off-box — set that up before you need it.

Is Coolify Production Ready?#

Yes — with caveats.

Coolify itself is stable and actively maintained. The production risk is running your own server: backups, monitoring, and uptime are on you. On Vercel, infrastructure issues are Vercel's problem. On Coolify, they're yours.

For solo developers and agencies running client sites, this is a reasonable tradeoff. For products where downtime directly costs money (e-commerce, SaaS with SLAs), budget proper backup and monitoring setup before going production.

One honest note on where my costs live now: the Supabase side of the stack is a separate bill, and how you structure it changes what "self-hosting" saves you. I wrote up the shared-vs-per-tenant Supabase decision in Supabase Cost: One Project vs. Many — worth reading before you commit to a migration plan.

FAQ#

Is Coolify really cheaper than Vercel?#

For one site on Vercel's free tier, no — free beats $32.99. The crossover is around 2-3 projects, and the gap widens with every additional site because Vercel Pro bills per project while Coolify's cost is flat.

Is Vercel free tier enough for a personal site?#

Usually yes. 100 GB bandwidth and 100 build minutes per month cover a low-traffic personal blog. You only feel the limits when you run multiple projects or get real traffic.

Does self-hosting with Coolify hurt performance?#

Measurably not, at solo-dev scale. SSR response times are comparable (~50-80ms vs ~50ms), and you eliminate cold starts entirely because containers are always running. The one real tradeoff is geographic: no global edge network — Cloudflare in front closes most of that gap.

What about Supabase — does that change the cost math?#

Self-hosting the Next.js app removes the Vercel bill, but Supabase is a separate cost. The architecture decision (one shared project vs per-tenant) matters more than any tier price — details in the Supabase cost post.

How long does the migration take?#

The first site takes a weekend (server setup + learning curve). Every site after that is roughly 30-60 minutes: connect repo, copy env vars, point DNS. The single biggest time sink is migrating vercel.json rewrite rules into Next.js middleware if you have them.

Is Coolify safe for client work?#

Yes, with a backup and monitoring setup first. Agencies running multiple client sites on one server are arguably the strongest use case — flat cost, full control, and the client's hosting bill stops being a recurring margin leak.

The Verdict#

Vercel if you have 1-2 products, you need zero ops overhead, or you're on the free plan.

Coolify if you're managing 3+ projects, hosting cost comes out of your margin, and you're comfortable with some server administration.

The math at my scale: roughly $600/year on Vercel vs ~$396/year on Hetzner. The savings paid for themselves in month one and stay flat while the Vercel bill would have grown with every new deploy and every new client.

Related posts

Freelance

Need help with this?

I help startups and businesses ship web projects: migrations, new products, and performance fixes.

Get in touch