12/18/2025

Deploying Nuxt: Cloudflare Workers vs Vercel vs Netlify

Deploying Nuxt: Cloudflare Workers vs Vercel vs Netlify

Deploying a Nuxt application in 2025 comes down to a choice between three main platforms: Cloudflare, Vercel, and Netlify. Each has its strengths, but for Nuxt developers, the situation has evolved: Cloudflare is merging Pages and Workers into a single platform, and this impacts how we deploy projects.

In this article, we'll analyze each platform from a Vue/Nuxt developer's perspective: how to set it up, how much it costs, and when to choose each option.

Cloudflare Workers

Pages + Workers = Workers

Cloudflare is actively merging Pages and Workers into a unified platform. During Developer Week 2025, they made it clear: Workers is the future. Pages will continue to function, but all new features, optimizations, and development are focused on Workers.

What this means in practice:

  • New projects are recommended to be created on Workers.
  • Existing Pages projects will continue to work.
  • Workers now supports static assets, making it a full replacement for Pages.
  • An automatic migration path will be available later; for now, you can migrate manually.

Why Workers for Nuxt

Cloudflare Workers run on V8 isolates—lightweight, isolated environments that start in milliseconds. These aren't containers like in traditional serverless platforms, so there's no typical cold start.

For Nuxt, this means:

  • SSR in ~20-50ms from anywhere in the world (300+ edge locations).
  • D1 — a distributed SQLite database, perfect for Nuxt Content v3.
  • R2 — S3-compatible file storage.
  • KV — a global key-value store.
  • Durable Objects — for real-time features and WebSockets.

NuxtHub is the official module from the Nuxt team for deploying to Cloudflare. It automates the creation of D1, R2, KV, and the deployment itself.

# Create a project
npx nuxthub init my-app
cd my-app

# Deploy
npx nuxthub deploy

The configuration is minimal:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxthub/core'],
  hub: {
    database: true,  // D1
    kv: true,        // KV storage
    blob: true       // R2 storage
  }
})

To deploy to Workers (instead of Pages), add:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxthub/core'],
  hub: {
    workers: true  // deploy to Workers instead of Pages
  }
})

Important: NuxtHub Admin is shutting down on December 31, 2025. The recommendation is to switch to self-hosting with GitHub Actions or Wrangler. The @nuxthub/core module will remain and is under active development.

Deploying without NuxtHub

For a Nuxt Content v3 project on Cloudflare Workers without NuxtHub, all configuration is done in nuxt.config.ts:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/content'],
  compatibilityDate: '2025-01-01',
  nitro: {
    preset: 'cloudflare_module',
    cloudflare: {
      deployConfig: true,  // auto-generate wrangler config
      wrangler: {
        d1_databases: [{
          binding: 'DB',
          database_name: 'my-content-db',
          database_id: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
        }]
      }
    }
  }
})

To deploy:

npx nuxt build
npx wrangler deploy

A separate wrangler.jsonc file is not needed—Nitro will generate it automatically with deployConfig: true.

Workers Limitations

  • Workers API ≠ Node.js — Most npm packages work, but some (like those using the file system or native modules) do not. Nuxt is optimized for Workers via unenv.
  • CPU time limit — 10-50ms per request. This is sufficient for SSR but not for heavy computations.
  • Bundle size limit — Up to 10MB on the paid plan.

Vercel

Vercel, the creators of Next.js, is the most popular platform in the React ecosystem. Nuxt is supported, but it's not their top priority.

Setup

Zero-config—Nuxt is detected automatically:

// nuxt.config.ts — nothing extra needed
export default defineNuxtConfig({
  // Vercel will detect the preset automatically
})

Connect your GitHub repository in the Vercel Dashboard, and you're done.

Advantages

  • Simplest DX — Connect the repo, and everything just works.
  • Preview deployments — Every pull request gets a unique URL.
  • Built-in analytics — Web Vitals and Speed Insights.
  • Image Optimization — Automatic image optimization.

Disadvantages for Nuxt

  • Next.js-first — New features are rolled out for Next.js first.
  • No D1 equivalent — For Nuxt Content, you need an external database or static generation.
  • Expensive at scale — Bandwidth overages cost $40/100GB.
  • Fewer edge locations — 30+ compared to 300+ with Cloudflare.

Netlify

Netlify is a pioneer of the Jamstack, optimized for static sites.

Setup

// nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    preset: 'netlify'
  }
})

Connect your repo and set the build command to nuxt build.

Advantages

  • Built-in forms — Form handling without a backend.
  • Split testing — A/B testing out of the box.
  • Branch deploys — Each branch gets its own deployment.

Disadvantages for Nuxt

  • Slower SSR — Cold starts are around 300ms.
  • Expensive bandwidth — $55/100GB for overages.
  • Fewer edge capabilities — No D1 equivalent.

Comparison

Cloudflare WorkersVercelNetlify
Edge locations300+30+100+
Cold start~0ms~250ms~300ms
SSR TTFB20-50ms50-100ms80-150ms
SQLite/D1
KV Storage✅ (Edge Config)
Blob Storage✅ R2✅ Vercel Blob
WebSockets✅ Durable Objects
Nuxt Content v3⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Forms

Pricing

Free Tier

PlatformWhat's Included
Cloudflare100k requests/day, 5GB D1, 10GB R2
Vercel100GB bandwidth, 100 function hours
Netlify100GB bandwidth, 125k function calls

At Scale (1M views/month)

PlatformEstimated Cost
Cloudflare~$5-15/month
Vercel$20 + $100-200 in overages
Netlify$19 + $100-300 in overages

Cloudflare wins on price—you pay for requests, not bandwidth.

What to Choose

Cloudflare Workers if:

  • You have an SSR-heavy application.
  • You're using Nuxt Content v3.
  • You plan to scale.
  • You need real-time features.

Vercel if:

  • You need the fastest possible start.
  • You're building an MVP or prototype.
  • You expect low traffic.

Netlify if:

  • You have a static Nuxt site.
  • You need built-in forms.

Conclusion

For Nuxt in 2025, the recommendation is Cloudflare Workers + NuxtHub. You get edge SSR with no cold starts, D1 for Nuxt Content, and the best pricing at scale.

Vercel is a great choice for a quick start if you don't want to deal with Cloudflare's setup.

Resources