Config Overview
Codabra uses a /config directory for application definitions and a codabra.json project file for outputs and reusable features.
codabra.json
{
"$schema": "./.codabra/schemas/codabra.schema.json",
"features": ["auth", "comments"],
"providers": [
{ "provider": "nextjs", "orm": "drizzle", "database": "sqlite" },
{ "provider": "node", "orm": "native", "database": "memory" }
]
}Each provider writes to apps/<provider>/ and receives the same application model. Native providers currently generate a replaceable in-memory persistence adapter; Next.js can use Drizzle or Prisma with SQLite, PostgreSQL or MySQL.
| Field | Values | Description |
|---|---|---|
features | auth, admin, comments | Reusable domain kits |
provider | nextjs, node, php, go, symfony | Output target |
orm | drizzle, prisma, native | Persistence capability |
database | sqlite, postgresql, mysql, memory | Database or native development store |
Use codabra add-provider to add another output interactively.
Config directory
config/
├── models/ # Data entities
├── routes/ # HTTP endpoints
├── views/ # Declarative UI
├── functions/ # Reusable application logic
├── events/ # Lifecycle hooks
└── voters/ # Authorization policiesJSON files may be nested for organization. A route file can contain a route object, an array, or an object with a routes array. Model and view files contain one definition or an array of definitions.
Currently supported configuration format: JSON. The canonical model makes YAML or TypeScript loaders possible later without changing providers.
