Skip to main content
Every .html file in client/pages/ becomes a route automatically. There is no router configuration — the file system is the router. For dynamic content, export getStaticPaths() to tell Aero which URLs to generate at build time.

Static pages

Drop an .html file in client/pages/ and Aero turns it into a URL: Subdirectories map to URL segments. Place an index.html inside a directory to serve that segment’s root.

Dynamic routes

Bracket-delimited filenames create dynamic routes. The bracket content becomes the parameter name: In dev, dynamic routes resolve at request time. For static builds, you must export getStaticPaths().

getStaticPaths

Export getStaticPaths() from <script is:build> to tell Aero which paths to generate:
client/pages/[id].html
getStaticPaths can be async for fetching from APIs or content collections at build time.
If a dynamic page does not export getStaticPaths, it is skipped during build with a warning. The page still works in dev but produces no output files.

Template context

Inside build scripts and expressions, every page has access to:

Linking between pages

Use standard <a href> tags with absolute paths:
Aero rewrites absolute href values to relative paths during build so your site works at any base path.