Routing
Curvea uses file-based routing from src/pages.
Routes are generated from page file names and folder structure.
Static routes
src/pages/Home.csc -> /
src/pages/About.csc -> /about
src/pages/Contact.csc -> /contact
src/pages/blog/Index.csc -> /blog
src/pages/blog/About.csc -> /blog/about
Home and Index behavior
At the project root:
src/pages/Home.csc -> /
Inside folders:
src/pages/blog/Index.csc -> /blog
src/pages/blog/Home.csc -> /blog
Dynamic routes
Dynamic page files use square brackets.
src/pages/products/[slug].csc
Dynamic route files are resolved using page JSON data or Markdown content depending on structure.
Dynamic page JSON data
For dynamic page files, Curvea can use JSON files from src/data/pages.
The dynamic parameter name comes from the page file name.
Example:
src/pages/products/[slug].csc
The parameter name is:
slug
Content routes
Markdown content routes are based on matching page folder structure and src/content/<collection>.
Example:
src/pages/blog/[slug].csc
src/content/blog/my-post.md
Build output:
/blog/my-post
Pagination routes
Paginated pages generate:
/base-route
/base-route/page/2
/base-route/page/3
Output files
Each route writes:
dist/<route>/index.html