For Nuxt
Nuxt SSR without the platform tax
Free to sign up. No egress fees on any product.
Why Nuxt on Edge
Every Nuxt feature, none of the proprietary glue
Nitro's node-server preset
nuxi build writes a plain Node server to .output/. Run it on any Edge VM. No proprietary runtime and no cold starts.@nuxt/image at the CDN
A small custom provider sends <NuxtImg> to the CDN. Variants are resized and converted to AVIF or WebP on request, then cached.S3-compatible storage
Uploads, generated files and anything too big for the build go in an Edge Storage bucket. The AWS SDK works unchanged.Global CDN, zero egress
_nuxt/ bundles and public/ assets cache in 988 locations. SSR falls through to your VM, and nothing is billed per GB.Any CI you like
Build in GitHub Actions or GitLab CI and ship with the Edge CLI. No platform-specific YAML to learn.Agent-deployable
Ask your coding agent to deploy the app to a domain. The agent API wires up the VM, DNS, CDN and SSL.
Reference architecture
How Nuxt maps to Edge
Browsers
shop.acme.com via Edge DNS
shop.acme.com
caches _nuxt/ and public/
<NuxtImg> ?width=640
custom provider, cached per variant
node index.mjs :3000
Nitro node-server · PM2 + Nginx
acme-media
uploads and generated files
- Compute
Runs the Nitro server (node .output/server/index.mjs) behind Nginx.
- Storage
Holds media, uploads and overflow assets. Any S3 client works.
- CDN
Caches the _nuxt/ bundle, public/ and any cacheable routes worldwide.
- Image optimisation
Backs @nuxt/image: resize, fit and AVIF/WebP, applied at the edge.
- DNS
Anycast DNS for the apex, www and per-environment subdomains.
- Shield
Checks form posts from a Nitro server route. No CAPTCHA widget.
- Assist
One script tag in app.vue adds answers grounded in your pages.
Deploy
From nuxi build to live in five steps
- 01
Build with the node-server preset
The output is a self-contained Node server. Try it locally before it goes anywhere.
shell$ npx nuxi build --preset node-server $ ls .output nitro.json public server $ node .output/server/index.mjs # listening on :3000 - 02
Register an Edge image provider
Keep <NuxtImg> and <NuxtPicture>. Route rules like swr work as documented on a VM.
nuxt.config.tsexport default defineNuxtConfig({ modules: ['@nuxt/image'], image: { provider: 'edge', providers: { edge: { provider: '~/providers/edge.ts', options: { baseURL: 'https://shop.acme.com' }, }, }, }, routeRules: { '/blog/**': { swr: 3600 } }, }) - 03
Map modifiers to CDN parameters
Width, height, fit and quality become URL parameters. The CDN transforms on the first request and caches the result.
providers/edge.tsimport { joinURL } from 'ufo' import type { ProviderGetImage } from '@nuxt/image' export const getImage: ProviderGetImage = (src, opts) => { const { modifiers, baseURL } = opts const { width, height, fit, quality = 75 } = modifiers const q = new URLSearchParams({ format: 'auto' }) q.set('quality', String(quality)) if (width) q.set('width', String(width)) if (height) q.set('height', String(height)) if (fit) q.set('fit', fit) return { url: `${joinURL(baseURL, src)}?${q}` } } - 04
Create a VM and start Nitro
The nodejs library script installs Node 22, PM2 and an Nginx reverse proxy on first boot.
shell$ edge compute create --name nuxt --size s-2vcpu-4gb \ --image ubuntu-24 --region london --script nodejs $ rsync -a .output/ root@<vm-ip>:/srv/shop/ $ ssh root@<vm-ip> "pm2 start /srv/shop/server/index.mjs" - 05
Front it with the CDN
SSL is issued automatically. --jit-image switches on the transforms your provider asks for.
shell$ edge cdn create --name acme-shop $ edge cdn domains add cdn-9c2e41 \ --domain shop.acme.com \ --origin https://<vm-ip> \ --jit-image
Prefer to hand it off? Give the job to your AI agent or have our engineers do it.
What it costs
One VM, one CDN, one bucket
- Nothing billed per render or per image
- Image optimisation included with the CDN
- Billed hourly from a prepaid balance, with optional hard caps
- Plain Node and S3, so you can move whenever you like
Estimated monthly bill on Edge
~500k page views · 4.5M requests · 25 GB of media
- Compute$19.24Standard VM · 2 vCPU · 4 GiB · 80 GB NVMe
- CDN$1.004.5M requests: first 500k free, 4M × $0.25 per million
- Storage$0.3025 GB: first 5 GB free, 20 GB × $0.015
- DNS$0.00Zone, records and environment subdomains
- Egress$0.00
FAQ
Nuxt on Edge, answered
Does the Nitro node-server preset work?
Can I use other Nitro presets?
How do route rules and SWR caching work?
Do I need a paid @nuxt/image provider?
What about preview environments?
Drop-in services
Add these without touching the stack
- Edge ShieldBot protection
POST /siteverify → score: 94Validate form submissions in a Nitro server route with one HTTP call. No CAPTCHA widget to ship or style.
Free for most sites. No puzzles, no widget to style.Explore - Edge AssistAI answers
<script src="…/assist.js">Drop the script tag into app.vue and visitors get answers drawn from your rendered pages.
Free tier: 250 answered questions a monthExplore
Ship Nuxt on Edge
Bring an existing Nuxt app or start from nuxi init. We'll help you size the VM.
Free tiers hard-cap. Nothing bills until you add a card.