Get Started
Jardis is a visual platform: you model your domain in the Designer (jardis ui) (bounded contexts, aggregates, rules and processes) and one click on Build generates the complete DDD platform code. No boilerplate, no template copy-paste. Five steps from domain to running application.
Step 1 — Start the Designer
jardis uiThe Designer opens in the browser (127.0.0.1). You see the workspace board: subdomains → bounded contexts → aggregates → rules → processes. A workspace is a directory and holds one or more domains.

Step 2 — Schema
Jardis works on a table schema. Two paths to get there:
- Import — import an existing database schema into the Designer. Jardis reads tables, columns, primary/foreign keys and indexes.
- Authoring — create the schema cooperatively with AI-powered skills from a plain-text idea, validated against the Jardis format.
Step 3 — Design
In the Aggregate Designer you decide which tables belong to an aggregate, which entity is the root and how they relate, as an ER diagram with PK/FK/UK markers.

In the Process Designer you model business flows as a node graph with onSuccess/onFail routing, cross-BC reads, rule chains and event publication. Strategically, you manage the whole via Steckbrief, Glossary, Governance/Rules and the Context Map (Strategic / Tactical / Reconcile, including a drift check of declared vs. real coupling).
Step 4 — Build
One click on Build in the Designer generates the complete code tree per aggregate: entities, commands, queries, events, repository pipeline, API contracts and the generated {Domain}Context. You see the generated code directly in the Code tab.

Headless via MCP
You drive the same flow (workspace → schema → design → build) without a browser via the MCP server: jardis mcp. Tools are actions, resources are read-only. Ideal for AI agents.
Step 5 — Use in Your Project
The generated code runs on the Core runtime: Kernel provides the Koffer, App the HTTP delivery.
composer require jardiscore/kernel jardiscore/appuse JardisCore\Kernel\Bootstrap\BuildDomainKernelFromEnv;
// 1. Build the Koffer from the .env cascade
$kernel = (new BuildDomainKernelFromEnv())(__DIR__ . '/..');
// 2. Instantiate the generated domain facade (builder output)
$sales = new \Ecommerce\Sales($kernel);
// 3. Read via the BC read facade …
$order = $sales->order()->getOrderById($orderId);
// … write via a process
$result = $sales->process(PlaceOrder::class, [
'customerId' => $customerId,
'items' => $items,
]);Every operation returns a DomainResponse: App translates it into the {status, data, errors, meta} envelope. For details on wiring it into a transport layer, see the platform skills (platform-usage).
Step 6 — Business Logic
The DDD platform is standing. From here, you work your business requirements into the generated command/handler/action stubs: value objects, business rules, domain services, workflows. AI-assisted, on an architecture that was built right from the start.