Getting started
Open the studio, create your first workspace, and model your first slice.
Open the studio
ddd-studio runs in the browser — Chrome, Firefox, Safari, or Edge, no plugins, no install: app.ddd-studio.dev.
Sign in with your Google account: your workspaces live in ddd-studio and are available on all your devices — and AI agents connected via MCP work on the same workspaces. Your model can leave the studio at any time as a JSON or ESDM export (see Storage & sync).
Start a workspace
From the start screen you can:
- New Model — start an empty workspace.
- Open Example — load the bundled library example (the same domain the modeling tutorial walks through).
- Import ESDM Folder… — read a folder of
.esdm.yamlfiles into a new workspace. - Open File… — restore a workspace previously saved as a JSON file.
If you're new to the tool, Open Example is the fastest way to get a feel for it: a small but complete model with two Bounded Contexts, flows, and Given–When–Then scenarios you can poke at.
The three views
Every workspace opens in the Static View. Use the view tabs to switch between three perspectives on the same underlying model:
| View | What it shows |
|---|---|
| Static View | Bounded Contexts, Aggregates, and their relationships — the structural overview |
| Flow View | The model as a story: slices from left to right, each one a step |
| Scenarios | Given–When–Then scenarios that pin down the rules with concrete examples |
The intended workflow runs through the views: sketch the story in the Flow View, secure the rules in Scenarios, and refine the structure in the Static View. The three views explains each one in detail.
Model your first slice
The natural starting point is the Flow View:
- Switch to the Flow View and click "+ Command-Slice".
- The dialog asks only for a name and a Bounded Context (pick an existing one or create a new one). It creates an empty slice shell.
- The slice appears as a column with four lanes: Trigger / API / Persistence / Event. Fill in each cell — the Actor who triggers it, the Command, the Aggregate that handles it, the Event it publishes.
- Add more slices until the story reads left to right. ReadModel-Slices work the same way for the query side.
Commands and Events are always created together, as part of a slice — that keeps every command's outcome explicit from the very first sketch.
Switch to the Static View at any point: everything you created in the flow is already there, organized by Bounded Context. This is where you add schemas, invariants, and cross-context connections. The tool's Quick Add suggests sensible next artifacts based on what's already connected to the selected node — so the model grows along valid paths only.
The model stays valid
ddd-studio is semantic, not freeform. The canvas is a projection of a real domain model, and every operation passes through a constraint engine with structural, cardinality, and scope-consistency rules. You can't draw an invalid relationship — the tool behaves less like a whiteboard and more like a compiler.
Every artifact also has a raw ESDM YAML detail view (with live linting) alongside its structured field editor — useful once you take the model toward code.
Where to go next
- The three views — Static, Flow, and Scenarios in depth
- Modeling tutorial — a complete model, built step by step
- Connect your agent — let Claude model with you