Production Build
Create production output with:
npm run build
The generated project script invokes curvea build from the local @curvea/cli dependency.
Output
Curvea writes the static site to:
dist/
Each public route is emitted as an index.html file:
/ -> dist/index.html
/about -> dist/about/index.html
/blog/post-one -> dist/blog/post-one/index.html
Before writing a new build, Curvea validates that src/pages exists and contains at least one .csc page. A missing or empty pages directory causes the build to fail rather than clearing the previous dist output.
Once page discovery succeeds, the build recreates dist, prepares assets, resolves routes/data/content/templates, renders final HTML through the document layer, and optionally writes sitemap.xml.
Sitemap
When the sitemap feature is enabled, the build writes:
dist/sitemap.xml
Sitemap generation requires site.url in curvea.config.json.
CI
For a committed project with a lockfile, a typical clean build is:
npm ci
npm run build
Deploy the generated dist directory; do not commit dist as part of the normal Curvea source workflow.