Skip to main content

Self-hosted Nuxt vs Vercel/Netlify — comparison

TL;DR

Detailed comparison of self-hosting Nuxt 3 versus deploying on Vercel or Netlify, covering cost, features, control, and performance.

Key facts

Topology
Nuxt self-hosted vs managed

TL;DR

Managed platforms like Vercel and Netlify offer zero-ops deployment for Nuxt 3 but trade cost predictability and infrastructure control for convenience. Self-hosting gives you full control, predictable pricing at scale, and no vendor lock-in — at the cost of managing your own server, process management, and SSL. The right choice depends on your traffic volume, team size, and compliance requirements.

Cost comparison at traffic tiers

Monthly trafficSelf-hosted (VPS)Vercel ProNetlify Pro
10K visits$5–12/mo (shared VPS)$20/mo + usage$19/mo + usage
100K visits$20–40/mo (2GB VPS)$20 + ~$40 overages$19 + ~$30 overages
500K visits$40–80/mo (4GB VPS)$150–300/mo (Enterprise)$100–200/mo
1M+ visits$80–150/mo (8GB VPS)Enterprise pricing requiredEnterprise pricing required

Self-hosting costs flatten at scale. Managed platforms charge per-request, per-bandwidth, or per-build-minute — costs grow linearly with traffic.

Feature parity

Server-side rendering (SSR)

  • Self-hosted: Full Nitro SSR with no cold starts — process is always warm
  • Vercel: Serverless SSR with cold starts (50–500ms on first request after idle)
  • Netlify: Serverless SSR with similar cold start characteristics

Incremental Static Regeneration (ISR)

  • Self-hosted: Nuxt 3 routeRules with swr achieves ISR natively on Nitro
  • Vercel: First-class ISR support with CDN-level caching
  • Netlify: DPR (Distributed Persistent Rendering) — similar concept

Edge rendering

  • Self-hosted: Not available without a CDN layer (Cloudflare Workers can front your origin)
  • Vercel: Edge Functions with Nuxt preset
  • Netlify: Edge Functions available

Image optimisation

  • Self-hosted: Use @nuxt/image with sharp locally or integrate with a CDN (Cloudflare Images, imgproxy)
  • Vercel: Built-in image optimisation
  • Netlify: Netlify Image CDN

Control and customisation

Self-hosting advantages:

  • Full filesystem access — custom binaries, system libraries, GPU access
  • No build time limits (Vercel: 45 min, Netlify: 30 min)
  • No bandwidth caps without overage fees
  • Custom Node.js version — not locked to platform runtime
  • Direct database access without connection pooling workarounds
  • No function size limits (Vercel: 50MB, Netlify: 52.4MB)
  • Data sovereignty — host in any region you choose

Managed platform advantages:

  • Zero server maintenance (OS updates, security patches)
  • Built-in CDN with global edge network
  • Preview deployments per Git branch
  • Integrated analytics and monitoring
  • Team collaboration features (comments on previews)

Cold starts

  • Self-hosted: Zero cold starts — the Nitro process is always running and warm
  • Vercel serverless: 50–500ms cold start after 5–10 minutes of inactivity
  • Vercel edge: Near-zero cold start but limited runtime APIs
  • Netlify: Similar cold start profile to Vercel serverless

For applications requiring consistent sub-100ms response times (dashboards, real-time apps), self-hosting eliminates cold start variability entirely.

Build minutes and deployment frequency

  • Vercel Pro: 6000 build minutes/month, then $0.01/min
  • Netlify Pro: 25000 build minutes/month
  • Self-hosted: Unlimited — builds run on your hardware or CI pipeline

If you deploy frequently (10+ times/day), self-hosted builds with a CI pipeline (GitHub Actions, GitLab CI) offer predictable costs regardless of frequency.

Lock-in considerations

Nuxt 3's Nitro engine supports multiple deployment presets:

  • node-server — standard Node.js (self-hosted)
  • vercel — Vercel serverless
  • netlify — Netlify functions
  • cloudflare-pages — Cloudflare Workers

Switching from self-hosted to Vercel requires only changing the Nitro preset in nuxt.config.ts. However, platform-specific features (Vercel KV, Netlify Blobs, edge middleware) create soft lock-in that increases migration cost over time.

When managed makes sense

  • Small teams (1–3 developers) who cannot justify ops overhead
  • Early-stage startups where speed of iteration matters more than cost optimisation
  • Marketing sites with unpredictable traffic spikes (CDN auto-scales)
  • Preview environments per pull request with zero configuration

When self-hosting wins

  • Predictable costs — monthly pricing does not spike with traffic
  • Compliance requirements — data residency, GDPR, financial regulations requiring specific hosting jurisdictions
  • Performance-critical applications — zero cold starts, full control over caching layers
  • Large teams with existing infrastructure and DevOps capability
  • High traffic — cost savings of 60–80% versus managed platforms above 500K monthly visits

With Reflex

Reflex bridges the gap between self-hosting and managed platforms. It provides the monitoring, automated deployments, and incident recovery you would expect from Vercel or Netlify — but running on your own infrastructure with predictable pricing and full control. Zero-downtime deploys, SSL management, health checks, and crash recovery come built in. See How it works.