Building Blocks
Groups, Components, Items, Connections, and Suggestions.
The three types
Group
A Group defines a domain or system boundary.
- Top-level — Groups sit at the root of the canvas.
- Children are free-positioned: drag them anywhere inside the Group.
- Typical examples:
Backend Service,UI,Infrastructure,Page.
Component
A Component represents one concern within a Group.
- Lives inside a Group (or stands alone at the root).
- Can hold an ordered, stacked list of Items.
- Typical examples:
Endpoint,Form,Entity,Cron Job.
Item
An Item describes a specific behaviour, spec, or detail of a Component.
- Lives inside a Component; Items are stacked in order.
- Can be connected to any other building block — even across Groups.
- Typical examples:
Form Field,Column/Field,Unit Test,CI/CD.
Structural type vs semantic type
Every building block has two classifiers:
structuralType— set by the system; determines how the block behaves (group,component,component-item).semanticType— set by you in Project Settings; determines what the block means (e.g.backend,form,endpoint).
You configure semantic types — their label, icon, color, and child rules — in Project Settings under the Component types, Component Item types, and Group types tabs.
Creating building blocks
- Press
Aanywhere on the canvas to open the add menu. - Choose the type you want to place.
Or right-click on an existing Group or Component and choose Add child.
Nesting rules
| Parent | Can contain |
|---|---|
| Group | Components, nested Groups |
| Component | Items |
| Item | — (leaf block) |
Items are the only building blocks that cannot contain children.
Connecting building blocks
Draw a Connection from any building block to any other:
- Hover over the source block until the connection handle appears, then drag to the target.
- Items can connect across Group boundaries — this is intentional and common (e.g. an
EndpointItem on the UI side connecting to aServiceComponent in the backend).
Reparenting
To move a building block into a different parent, select it and drag it onto the new parent.
You can also use Rearrange (Cmd/Ctrl+Shift+R) to let Plan0 automatically reflow the layout of the selected blocks.
Suggestions
A Suggestion is a structural advisory attached to a building block.
Suggestions are generated from rules defined in your Template. A common example: every Infrastructure Component must have at least one Security Item — if it doesn't, a Suggestion badge appears on the Component.
Act on Suggestions by adding the missing building blocks, or dismiss them if they don't apply.