The fastest way to start a Nuxe project is with theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/dvlkit/nuxe/llms.txt
Use this file to discover all available pages before exploring further.
create-nuxe scaffolding CLI. It asks a few questions, writes the project files, and leaves you with a working SSR app ready to run. The steps below walk through the entire flow from zero to a running dev server.
Scaffold a new project
Run The CLI walks you through four prompts:
create-nuxe and pass your project name as the first argument, or omit it to be prompted interactively.| Prompt | Default | Description |
|---|---|---|
| Project name | my-nuxe-app | Used as the directory name and package.json name field. Only letters, numbers, dashes, and underscores are allowed. |
| Dev port | 3000 | The port the development server listens on. Written into nuxe.config.ts as server.port. |
| Include demo pages | yes | Scaffolds app/pages/, app/components/, and app/composables/ with example files. Choosing no leaves a bare app/app.vue with only <RouterView />. |
| Add Tailwind CSS v4 | yes | Installs tailwindcss and @tailwindcss/vite, adds the Vite plugin to nuxe.config.ts, and creates app/assets/css/main.css with @import "tailwindcss". |
Install dependencies
Move into the newly created directory and install.
create-nuxe resolves and pins the latest published versions of @dvlkit/nuxe, vue, vue-router, and typescript at scaffold time, so your package.json starts with concrete version numbers rather than latest tags.Start the development server
nuxe dev, which starts a Vite-powered SSR dev server with hot module replacement. You will see the Nuxe banner in your terminal followed by the local URL.Open your app
Navigate to http://localhost:3000 (or whichever port you chose during scaffolding). If you included the demo pages, you will see the home page rendered from
app/pages/index.vue.The port can be changed at any time by editing
server.port in nuxe.config.ts, or by setting the PORT environment variable at runtime.Generated nuxe.config.ts
create-nuxe writes a nuxe.config.ts at the project root based on your answers. With Tailwind CSS enabled it looks like this (taken directly from the playground):
nuxe.config.ts
nuxe.config.ts
server (port, apiPrefix), vite (any Vite UserConfig), runtimeConfig, and baseUrl. Every key is optional — an empty defineConfig({}) is valid.
A sample page
Here is a minimal page that usesuseHead for per-page metadata and definePage to assign a layout:
app/pages/about.vue
definePage (auto-imported — no import statement needed):
app/pages/admin.vue
meta.layout is case-insensitive and resolves to the matching file in app/layouts/. Pages without meta.layout automatically fall back to layouts/default.vue.
Build and run for production
When you are ready to deploy, build the app and then start the production server:nuxe build produces two output directories: .output/public/ (static assets and client bundles) and .output/server/ (the SSR handler). nuxe start serves both from the same Node.js process.