For Nuxt
Nuxt SSR
without the lock-in
Run Nuxt 3 on real VMs with the Nitro Node preset. Image optimisation, S3-compatible storage and a global CDN with zero egress fees — all the platform pieces, none of the platform tax.
# Build with the Nitro Node preset
$ NITRO_PRESET=node-server nuxt build
# Provision a VM
$ edge compute create \
--image ubuntu-24-04 --plan small \
--script ./bootstrap-nuxt.sh
# Front it with the CDN
$ edge cdn create app.example.com \
--origin https://<vm-ip>
✓ Live, SSL provisioned
Why Nuxt teams pick Edge
All the framework features, none of the proprietary glue.
Nitro Node preset on real VMs
Build with the Node preset and run on any Edge VM. No proprietary runtime, no per-invocation pricing, no cold starts.
@nuxt/image, optimised
Wire @nuxt/image to Edge Image Optimization for AVIF/WebP, responsive srcsets and on-the-fly resizing — at the CDN.
S3-compatible asset storage
Store uploads, generated content and ISR-style snapshots in Edge Storage. The AWS SDK works unchanged.
Global CDN with zero egress
Cache the static parts of your Nuxt build globally and let SSR fall through to your VM. No egress fees on the way out.
CI of your choice
Build in GitHub Actions or GitLab CI, ship with the Edge CLI. No platform-specific YAML required.
Agent-deployable
Tell the Edge agent to deploy your Nuxt app to a domain — VM, DNS, CDN and SSL all wired up automatically.
Reference architecture
How Nuxt maps to Edge
A standard Node SSR setup. Familiar tooling, no surprises.
Runs the Nitro Node server (`node .output/server/index.mjs`)
S3-compatible bucket for media, ISR snapshots and overflow assets
Caches the static `_nuxt/` bundle and any cacheable routes
Powers @nuxt/image with edge-side transforms
Anycast DNS for the apex, www and per-environment subdomains
Free bot protection for forms — one server-side check in a Nitro route
AI answers from your rendered pages — one script tag in app.vue
# nuxt.config.ts — image optimisation
export default defineNuxtConfig({
image: {
provider: 'edge',
edge: { baseURL: 'https://cdn.example.com' },
},
routeRules: {
'/blog/**': { swr: 3600 },
},
})
Common questions
Does the Nitro Node preset work?
Yes. `nuxt build` produces a standard Node bundle in `.output/`. Run it with `node .output/server/index.mjs` on an Edge VM behind Nginx or Caddy.
Can I use other Nitro presets?
For Edge we recommend the Node preset because it keeps the runtime under your control. The Cloudflare/Vercel presets are tied to those platforms — moving to Edge means Node, which is the most flexible target anyway.
How does ISR / route caching work?
Use Nitro's built-in route rules with `cache: { swr: true }` and back the cache with Edge Storage for multi-VM setups. The CDN handles the heavy lifting for guest traffic.
What about previews?
Spin up an ephemeral VM per branch from CI, point a `*.test.network` subdomain at it, tear it down on PR close. The Edge CLI makes this two lines of YAML.
Drop-in services
Works with this stack out of the box
No rebuild, no migration — Shield is one HTTP check and Assist is one script tag. Add either to what you're already running.
Edge Shield
Bot protection
Validate form submissions server-side in a Nitro route with a single HTTP call.
Free for most sites — no puzzles, no widget to style
Explore Shield →Edge Assist
AI answers
Drop the widget into app.vue and it answers visitor questions from your rendered pages.
Free tier: 250 answered questions a month
Explore Assist →By Stack
Other stacks on Edge
Ship Nuxt on Edge
Free to sign up — full platform access. Bring an existing Nuxt app or scaffold a new one — we'll help you size the VM.