Skip to main content

Minimal template

When you run pnpm create @aero-js my-app, Aero scaffolds a minimal tree. The fullstack template adds Nitro under server/ and a root nitro.config.ts.

/your-project

client
assets
scripts
styles
images
components
layouts
pages
content
site.ts
vite.config.ts
tsconfig.json
package.json

Fullstack template

Adds server output and Nitro configuration:

server
api
nitro.config.ts

Directory overview

DirectoryPurpose
client/pages/File-based routing — each .html file becomes a URL. See Routing.
client/layouts/Shared page shells with <slot />. See Templates.
client/components/Reusable .html partials. See Templates.
client/assets/styles/CSS files, referenced via @styles/ alias. See Styling.
client/assets/scripts/Client-side TS/JS, referenced via @scripts/ alias. See Scripts.
content/Data modules and content collections. See Content.
public/Static files copied to dist/ unchanged (favicons, robots.txt). See Assets.
server/Nitro API handlers (fullstack only). See Server.

Config files

FilePurpose
vite.config.tsVite config with the aero() plugin
aero.config.tsOptional dedicated Aero config via defineConfig()
tsconfig.jsonTypeScript settings and path aliases
nitro.config.tsNitro config (fullstack only)
content.config.tsContent collection schemas (when using @aero-js/content)
If you rename top-level folders (for example frontend/ instead of client/), set dirs in your Aero config. See Configuration.