Vercel vs Hetzner VPS (self-host) Comparison

A managed platform that automates everything after git push

VS
Hetzner VPS (self-host)

A fixed monthly-fee server: full control, full responsibility

9 min readDevOps

Quick Verdict

There's no outright winner — these are two different responsibility models. If your traffic is spiky and you lack DevOps capacity, Vercel's automatic scaling earns its price. If you have predictable medium traffic plus an existing systemd/nginx/Cloudflare discipline, Hetzner + Cloudflare fixes the bill and gives you an edge on data residency. The tipping point: bandwidth and ISR-write volume — measure for a month, then decide.

VercelHetzner VPS (self-host)
Read the full verdict

Score Comparison

Loading chart...

Detailed Scoring

Detailed Scoring: Vercel and Hetzner VPS (self-host) — category-by-category scores out of 10
CategoryVercelHetzner VPS (self-host)
Performance
8/10
7/10
Ease of Learning
9/10
5/10
Ecosystem
9/10
7/10
Community
8/10
7/10
Job Market
7/10
7/10
Future-Proof
8/10
8/10

Pros & Cons

Vercel

Pros

  • Build, TLS, CDN distribution, and rollback are fully automatic
  • Automatic scaling — no capacity planning required
  • Preview deployments come ready for every PR/branch
  • ISR/Image Optimization/Proxy work with zero configuration
  • Regional Active-CPU billing via Fluid Compute
  • Instant Rollback included as a feature
  • Day-0 compatibility since Vercel is Next.js's own creator

Cons

  • As traffic grows, billing line items (bandwidth, edge requests, ISR writes) can compound
  • Bot Protection and AI-bot managed rulesets exist but are OFF by default — if you don't enable them, bot traffic is billed at the normal rate
  • Seven separate billing axes run simultaneously; the Spend Management cap checks spend every few minutes, so the pause isn't instant
  • Function/ISR region selection is limited per plan (Hobby: one region, Pro: 5 regions)
  • Regional price differences (Fast Data Transfer, Sandbox) are transparent but complex
  • There are Vercel-specific architectural cost items like Global Config Reads/Writes

Best For

Projects with spiky/unpredictable trafficSmall teams/solo developers without DevOps capacityTeam workflows that need frequent preview deploymentsApplications that need global multi-region edge distributionFast MVP and prototype launches

Hetzner VPS (self-host)

Pros

  • Fixed monthly fee — you pay for the rental, not for usage, so budgeting is predictable
  • Marginal cost doesn't rise as traffic/ISR-write volume grows
  • Germany/Finland data centers are GDPR-native and ISO/IEC 27001 certified
  • Stateful firewall is free and included in the VPS price
  • Free one-click apps like Docker, WordPress, Nextcloud, GitLab
  • Full automation via REST API + hcloud CLI + official Go/Python libraries
  • Next.js standalone/Docker deployment supports all features (per the official docs)

Cons

  • TLS, reverse proxy, security patching, and process management are entirely your responsibility
  • No automatic scaling — capacity increases are manual (vertical or horizontal)
  • ISR cache defaults to a single-instance local disk (multi-instance setups need a shared cache handler)
  • There were two price increases in 2026 — dedicated vCPU (CCX/CPX) lines saw increases of 113-175% in some configurations
  • Without sharp installed, Image Optimization can run slow and memory-heavy
  • Backups, restore rehearsals, and monitoring are a separate responsibility you have to set up yourself

Best For

Predictable, medium-to-high-traffic, budget-sensitive projectsTeams that already have systemd/nginx/Cloudflare disciplineApplications that need full data-residency control under KVKK/GDPRPortfolio/blog/mid-size SaaS projects that a single-instance setup is enough forBudgets that prioritize long-term cost predictability

Code Comparison

Vercel
# Vercel — zero-config Next.js deploy + environment variable + Edge Config example

# 1) vercel.json at the project root for function region and cron settings
{
  "regions": ["fra1"],
  "crons": [
    { "path": "/api/cron/revalidate", "schedule": "0 */6 * * *" }
  ]
}

# 2) Deploy via CLI (build+TLS+CDN automatic)
npx vercel --prod

# 3) To reduce the cost of ISR write units (1 unit = 8 KB, no included quota),
# adjust the revalidate interval based on traffic
export const revalidate = 3600; // regenerate once an hour

# 4) To reduce Fast Origin Transfer, force the function
# output into a static cache
export async function GET() {
  return Response.json(
    { data: "ok" },
    { headers: { "Cache-Control": "public, s-maxage=600" } }
  );
}
Hetzner VPS (self-host)
# Hetzner VPS — Next.js standalone self-host + systemd + nginx

# 1) next.config.js — standalone output mode (per the official self-hosting guide)
module.exports = {
  output: "standalone",
};

# 2) Build + copy into standalone
npm run build
cp -r .next/static .next/standalone/.next/static
cp -r public .next/standalone/public

# 3) systemd unit — process management (portfolio-ssr.service example)
[Unit]
Description=Next.js standalone server
After=network.target

[Service]
Type=simple
User=portfolio
WorkingDirectory=/var/www/app/.next/standalone
ExecStart=/usr/bin/node server.js
Restart=on-failure
Environment=PORT=4000
NoNewPrivileges=true
ProtectHome=true

[Install]
WantedBy=multi-user.target

# 4) nginx reverse proxy (Next.js's official recommendation)
server {
  listen 443 ssl;
  server_name example.com;
  location / {
    proxy_pass http://127.0.0.1:4000;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

# 5) Install sharp — required for Image Optimization
npm install sharp

Conclusion

There's no outright winner — these are two different responsibility models. If your traffic is spiky and you lack DevOps capacity, Vercel's automatic scaling earns its price. If you have predictable medium traffic plus an existing systemd/nginx/Cloudflare discipline, Hetzner + Cloudflare fixes the bill and gives you an edge on data residency. The tipping point: bandwidth and ISR-write volume — measure for a month, then decide.

Get Free Consultation
FAQ

Frequently Asked Questions

The exact ratio depends on your traffic and ISR-write volume, but the structural difference is clear: Vercel Pro charges a $20/month base plus usage-based extras (Fast Data Transfer from $0.15/GB, Edge Requests $2/1M, ISR Write $4/1M write units), while a Hetzner VPS charges a fixed monthly rent with no extra charges as long as you stay within the included traffic quota. If your bandwidth/ISR-write volume is low, the gap can be negligible; as it rises, Vercel's bill compounds while Hetzner's stays fixed. Factor in the 2026 Hetzner price increases too (especially on the CCX/CPX lines) and run the numbers for both sides against your own traffic.

Related Blog Posts

View All Posts
All Comparisons