What is Nuxt?
Nuxt is a Vue.js meta-framework that provides server-side rendering, static generation, and file-based routing out of the box.
What is Nuxt?
Nuxt is a full-stack meta-framework built on Vue.js that handles server-side rendering (SSR), static site generation (SSG), and hybrid rendering through a single, opinionated project structure. Originally released in 2016 by Sébastien and Alexandre Chopin, Nuxt reached its current major version — Nuxt 3 — in November 2022, built on Vue 3, Vite, and the Nitro server engine. Nuxt 3 introduced auto-imports for composables and components, a new server/ directory for API routes, and universal rendering that lets you choose SSR, SSG, or client-only rendering per route. It ships with built-in TypeScript support, file-based routing via the pages/ directory, and a module ecosystem with over 200 community modules. We've used Nuxt on projects where Vue is the team's preferred reactive layer and the site needs strong SEO defaults — marketing sites, documentation portals, and content-driven e-commerce storefronts.
How it works
Nuxt's architecture sits on three pillars: Vue 3 for the component layer, Vite for the build toolchain, and Nitro as the server engine.
File-based routing. Drop a .vue file into pages/ and Nuxt generates a route automatically. Nested directories create nested routes. Dynamic segments use bracket syntax:
pages/
index.vue → /
blog/
[slug].vue → /blog/:slug
index.vue → /blog
Rendering modes. In nuxt.config.ts, you set ssr: true for server rendering or ssr: false for a pure SPA. Route rules let you go hybrid:
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
'/dashboard/**': { ssr: false },
'/blog/**': { isr: 3600 }
}
})
Your homepage gets statically generated at build time. The dashboard becomes a client-only SPA. Blog pages use Incremental Static Regeneration with a 1-hour TTL. All in one deploy.
Nitro server engine. Nitro compiles your server routes and middleware into a standalone output that runs on Node.js, Deno, Cloudflare Workers, Vercel Edge Functions, or Netlify Functions. This is what makes Nuxt genuinely portable across hosting providers.
Auto-imports. Composables like useState, useFetch, and useRoute are available without explicit import statements. Components in components/ are also auto-registered. Cuts down boilerplate. But it'll confuse developers new to the codebase — we recommend enabling the typescript.typeCheck option so your IDE catches undefined references.
When to use it
Nuxt makes sense when your team already knows Vue and you need more than a client-only SPA.
Use Nuxt when:
- You need SSR or SSG for SEO-critical pages (marketing sites, blogs, e-commerce PDPs)
- You want file-based routing and don't want to configure vue-router manually
- You're deploying to edge platforms and want one framework that compiles to multiple targets
- You need API routes co-located with your frontend (
server/api/directory) - Your content team uses Markdown — Nuxt Content v2 turns
.mdfiles into a queryable data layer
Skip Nuxt when:
- Your app is purely behind auth with zero SEO needs — a plain Vite + Vue SPA is lighter
- Your team is React-native — Next.js is the closer analog and switching reactive paradigms isn't worth it
- You need a mature app directory / RSC story — React Server Components in Next.js are further along as of April 2026
Nuxt vs alternatives
| Feature | Nuxt 3 | Next.js 15 | Astro 5 |
|---|---|---|---|
| Reactive layer | Vue 3 | React 19 | Any (islands) |
| SSR | Yes | Yes | Yes |
| SSG | Yes | Yes | Yes (default) |
| ISR | Yes (route rules) | Yes (native) | Via adapters |
| Server engine | Nitro | Custom / Edge Runtime | Astro adapter |
| File-based routing | pages/ dir |
app/ dir |
src/pages/ dir |
| Edge deploy | Workers, Deno, Vercel, Netlify | Vercel-optimized, others via adapters | Cloudflare, Vercel, Netlify |
| JS shipped (content site) | Moderate (Vue hydration) | Moderate (React hydration) | Minimal (zero JS by default) |
If you're building a content-heavy site where shipping near-zero JavaScript matters most, Astro wins. If your team is Vue-first and needs full-stack capabilities, Nuxt is the clear pick. Next.js dominates in the React ecosystem and has a larger module/plugin marketplace.
Real-world example
We built a SaaS marketing site with ~80 pages using Nuxt 3 and Nuxt Content v2. Blog posts and changelogs lived as Markdown files in content/. Product pages used SSR with a 1-hour ISR cache via Vercel. The dashboard section was client-only (ssr: false route rule) since it sat behind authentication.
Build time for the static portion was under 30 seconds for 60+ prerendered pages. Lighthouse performance scores consistently hit 95+ on mobile for the marketing pages. The Nitro output deployed to Vercel with zero custom configuration — just npx nuxi build and push. Total project setup to production took under two weeks with a two-person team.