Example

Suppose your project has this structure:

src
├── backend
│   ├── database
│   └── server
└── frontend
    ├── lib
    └── ui

Each bottom-level component (ui, lib, server, database) can be started on its own.

1. Initialize the Project

From your repo root, run:

curo init > curo.toml

This generates a curo.toml` in your root directory.

2. Top-level curo.toml

Open the root curo.toml. For this layout:

curo_toml_version = "0.93.0"

[about]
name = "node-monorepo"
description = "Full-stack monorepo with Node.js frontend/backend and PostgreSQL database"
code_dir = "src"

[dev]
format = "prettier --write ."
lint = "eslint ."

components = ["frontend", "backend"]
  • code_dir = "src" tells curo all code lives in src/.
  • components lists first-level folders in src/.

3. src/frontend/curo.toml

Create src/frontend/curo.toml with curo init:

curo_toml_version = "0.93.0"

[about]
name = "frontend"
code_dir = "."

components = ["ui", "lib"]

4. src/backend/curo.toml

In src/backend/curo.toml:

curo_toml_version = "0.93.0"

[about]
name = "backend"
code_dir = "."

components = ["server", "database"]

5. Bottom-level curo.tomls

For src/frontend/ui/curo.toml:

curo_toml_version = "0.93.0"

[about]
name = "ui"
code_dir = "."

[dev]
install = "npm install"
start = "npm run start"

For src/frontend/lib/curo.toml:

curo_toml_version = "0.93.0"

[about]
name = "lib"
code_dir = "."

[dev]
install = "npm install"
build = "npm run build"

For src/backend/server/curo.toml:

curo_toml_version = "0.93.0"

[about]
name = "server"
code_dir = "."

[dev]
install = "npm install"
start = "npm run start"

For src/backend/database/curo.toml:

curo_toml_version = "0.93.0"

[about]
name = "database"
code_dir = "."

[dev]
start = "docker-compose up db"

6. Example Usage

  • Install everything:
    curo install
    
  • Format all code:
    curo format
    
  • Lint all code:
    curo lint
    
  • Start just the server:
    curo start backend server
    
  • Start the UI:
    curo start frontend ui
    
  • Start only the database:
    curo start backend database
    
  • Start everything:
    curo start