Curvea

Getting Started

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.