Project Structure
A standard Curvea project uses this structure:
src/
Document.csc
pages/
layouts/
components/
data/
pages/
content/
assets/
css/
js/
public/
dist/
curvea.config.json
package.json
src/Document.csc
Optional global document template. If it is missing, Curvea uses the built-in default document.
The document owns the outer HTML shell and exposes {{ head }} and {{ app }}.
src/pages
Public route templates. Every page declares:
@page
src/layouts
Shared page structure. Layouts receive rendered page content through {{ slot }}.
src/components
Reusable CurveaScript components. The Engine requires components to be imported with @import before use.
src/data
JSON datasets loaded explicitly with @load.
src/data/pages
JSON associated automatically with static or dynamic pages.
src/content
Markdown content collections, for example:
src/content/blog/hello-world.md
src/assets
Project CSS, JavaScript, and other source assets. Common entry paths are:
src/assets/css/app.css
src/assets/js/app.js
public
Static files copied directly into the production output.
dist
Generated production output. Run:
npm run build
Generated projects ignore dist in Git so hosting/CI can build it from source.