dist/ folder by default. When Nitro is enabled, you also get a .output/ server bundle. Choose the deployment path that fits your project.
Static hosting
Runpnpm build and upload the dist/ folder. That’s it — no runtime needed.
- Git hosting pages — GitHub Pages, GitLab Pages, Cloudflare Pages (static mode)
- Object storage + CDN — S3, R2, GCS with
index.htmldefault documents - Traditional static hosts — any server that serves files from disk
Base path
If your site is served from a subpath (e.g.https://example.com/docs/), set your site URL in the Aero config and configure base in Vite so asset URLs and internal links resolve correctly. See Metadata and Configuration.
Nitro deployment
Whenserver: true is enabled, pnpm build produces both:
dist/— Static HTML (Aero’s usual output).output/— Nitro server bundle with API routes, middleware, and deployment adapters
Deployment presets
Nitro uses presets to target platforms. Set one innitro.config.ts:
nitro.config.ts
What Aero injects
Aero generates a small.aero/nitro.config.mjs during build that extends your nitro.config.ts. Aero injects only what it must (output dirs, scan dirs, static catch-all). You own presets, routeRules, runtimeConfig, and other Nitro options.
Preview
After a production build:| Command | What runs |
|---|---|
pnpm preview | Static files only — no Nitro APIs |
pnpm preview:api | Full Nitro server from .output/ |