The Vue meta-framework. File-based routing, auto-imports, server engine, SSR / SSG / hybrid — everything you need to ship a Vue app to production.
← Back to Client Sidepages/)pages/products.vue becomes /products.server/api/ and run on the Nitro engine.routeRules.<script setup> // Auto-imported: useFetch, useState, definePageMeta, etc. const { data: products, pending } = await useFetch('/api/products'); definePageMeta({ title: 'Products' }); </script> <template> <p v-if="pending">Loading…</p> <ul v-else> <li v-for="p in products" :key="p.id"> {{ p.name }} — \${{ p.price }} </li> </ul> </template> // server/api/products.ts export default defineEventHandler(async () => { return await db.products.findMany(); });
Nuxt's universal server runtime. The same code deploys to Node, Cloudflare Workers, Vercel Edge, AWS Lambda, Netlify, Deno Deploy, Bun — pick your target with one config flag.
SSR-aware data fetching composables — runs on the server during the initial render, then stays in sync on the client. Built-in caching, deduplication, and refresh.
routeRules: {
'/': { prerender: true }, // SSG
'/blog/**': { isr: 3600 }, // ISR
'/admin/**':{ ssr: false }, // SPA
'/api/**': { cors: true }, // API
}
| Module | Purpose |
|---|---|
| @nuxtjs/tailwindcss | Tailwind, zero config. |
| @nuxt/image | Optimized images / responsive sizes. |
| @nuxt/content | Markdown / MDC content as a database. |
| @nuxtjs/i18n | Routing-aware internationalization. |
| @sidebase/nuxt-auth | Auth.js integration. |
| @pinia/nuxt | Pinia state management. |
Nuxt Content + SSG = a Markdown-driven CMS in minutes.
Hybrid rendering for marketing + dashboard in one codebase.
Deploy to Cloudflare Workers / Vercel Edge for global latency.
The natural progression from a Vite + Vue SPA.