Skip to content

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

bash
jardis ui

The 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.

The workspace board: subdomains, bounded contexts, aggregates, rules and processes

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.

Aggregate Designer: ER model with root entity and relationships

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.

The Code tab shows the generated aggregate tree

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.

bash
composer require jardiscore/kernel jardiscore/app
php
use 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.