Skip to content

Repository files navigation

Codabra logo

🐍 Codabra

Configuration Driven Development — write JSON configs, get real apps.

Codabra reads config files and compiles them into production-ready applications. It works on top of frameworks — not instead of them.

Documentation npm version npm downloads License CI Node.js

What is Codabra?

Codabra is a configuration-driven application generator. Instead of hand-writing boilerplate for models, routes, and views, you describe your app in JSON config files and Codabra compiles them into real, target-native code:

  • Generate models, routes, and views from declarative config
  • Validate config files before generating anything
  • Dev — generate + start your app's dev server in one command
  • Build — generate + run your app's production build
  • Providers — Next.js, Node/Express, PHP, Go and Symfony from the same config
  • Feature kits — reusable auth, admin and comments domain building blocks
  • Database lifecycle — push, generate, and migrate your schema

Quick Start

npx create-codabra@latest my-app
cd my-app
pnpm install
pnpm codabra dev

Monorepo Structure

codabra/
├── apps/
│   ├── docs/          # Documentation (VitePress)
│   └── web/           # Example generated app (Next.js)
├── packages/
│   ├── cli/           # CLI tool (codabra, create-codabra)
│   ├── core/          # Config loader, parser, validator, compiler
│   └── providers/     # Language and framework renderers
└── config/            # Example configuration files

Config System

Place your config files in /config:

config/
├── models/        # Data models (entities)
├── routes/        # HTTP routes
├── views/         # Declarative UI definitions
├── functions/     # Reusable application logic
├── events/        # Lifecycle hooks
└── voters/        # Authorization rules

CLI Commands

codabra generate       # Generate app from config
codabra validate       # Validate config files
codabra dev            # Generate + start dev server
codabra build          # Generate + production build
codabra upgrade        # Upgrade @ndnci/codabra and regenerate app files
codabra add-provider   # Add a new provider to an existing project
codabra db push        # Push schema directly to the database (dev)
codabra db generate    # Generate versioned migration files
codabra db migrate     # Apply pending migrations
codabra create [name]  # Scaffold a new Codabra project
Command Description
codabra generate (g) Generate application files from your config
codabra validate (v) Validate config files without generating
codabra dev Generate + start the development server
codabra build Generate + run the production build
codabra upgrade Upgrade the CLI and regenerate application files
codabra add-provider Add a new provider to an existing project
codabra db push Push the schema directly to the database
codabra db generate Generate versioned migration files
codabra db migrate Apply pending migration files
codabra create [name] Scaffold a new Codabra project

Architecture

  • core — validation and config → canonical application model compilation
  • providers — target renderers; syntax changes here, business meaning does not
  • cli — Orchestrates everything; exposes the codabra and create-codabra commands

The generation path is config → canonical model → target renderer → files. This avoids translating source code between languages and keeps route/model semantics shared.

Only @ndnci/codabra (the CLI) is published to npm — core and providers are bundled into it at build time.


License

Codabra is source-available under the Elastic License 2.0.

About

Configuration Driven Development — write JSON configs, get real apps.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages