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: The Recommended Method
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 Workers | Vercel | Netlify | |
|---|---|---|---|
| Edge locations | 300+ | 30+ | 100+ |
| Cold start | ~0ms | ~250ms | ~300ms |
| SSR TTFB | 20-50ms | 50-100ms | 80-150ms |
| SQLite/D1 | ✅ | ❌ | ❌ |
| KV Storage | ✅ | ✅ (Edge Config) | ❌ |
| Blob Storage | ✅ R2 | ✅ Vercel Blob | ✅ |
| WebSockets | ✅ Durable Objects | ❌ | ❌ |
| Nuxt Content v3 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| Forms | ❌ | ❌ | ✅ |
Pricing
Free Tier
| Platform | What's Included |
|---|---|
| Cloudflare | 100k requests/day, 5GB D1, 10GB R2 |
| Vercel | 100GB bandwidth, 100 function hours |
| Netlify | 100GB bandwidth, 125k function calls |
At Scale (1M views/month)
| Platform | Estimated 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.