Last updated October 24, 2026
On this page
Nodes & Edges
A board is a graph drawn as shapes and lines. Nodes are the things your system is made of, and edges are claims about how they relate.
The element kinds
A canvas holds eight element kinds. Only two of them, nodes and edges, model the system itself.
Containers and regions look alike and mean different things. A container claims ownership: what is inside belongs to it. A region only groups elements visually, to help someone read the board.
Archetypes type them
An element kind says how something behaves on the canvas. An archetype says what it is: "API Gateway", "PostgreSQL", "Message Queue".
An archetype defines shape and size, fill and stroke, and containment rules. For an edge it also defines the connection shape and markers.
Your workspace starts with a built-in library, and you can add your own archetypes. Containment rules say what may sit inside what: a domain accepts systems, a system accepts services, and the canvas refuses an invalid drop.
Colour means something
Fill and stroke are not free-form hex values. Each is a {colour family, weight} token pair: one of a fixed set of families, shared by related archetypes, plus a weight for how strongly it renders. A colour can then mean "data store" across a workspace. The canvas has no colour legend.
What a node stores
Beyond its name and archetype, a node stores:
- Fields: attributes defined by the archetype and filled in per node. Field templates are set once for the org, so every node of a kind asks for the same facts.
- Context tags: semantic labels for slicing a board, such as migration scope, owning team, or deprecation status.
- Aspects: typed architecture detail a node owns on an app board, pushed from the repo, such as a database schema, API surface, or route surface. The node names the thing; the aspect describes its internals.
- A parent: nodes nest, so a service can sit inside the container that owns it and stay with it.
- A child layer: a whole board of its own, one click deeper, for when a node's internals need their own map.
Edges
Every edge has a direction, a source node, a target node and a relation label: Payment Service calls User Database. You pick the label, or a governing source picks it during sync.
The markers its archetype sets on each end show the kind of relationship: an arrow that points, a marker that terminates, or a plain line that only associates.
Direction matters: an insight's traced path follows the arrows exactly as drawn.
Drawn, kept, and bundled
A code plugin push keeps every relationship it finds, but a board draws only some of them. Each board draws its strongest import edges up to a board-wide edge budget. A hub also draws its strongest consumers, up to its own limit.
Relationships outside the budget stay available. A hub node lists its undrawn consumers under Used by in its documentation panel, strongest first, with the symbols each one imports. The plugin also keeps every resolved pair on your local disk.
When several child connections run between the same drawn pair of containers, the canvas combines them into one line. A ×N chip shows the count, and the combined import weight sets the line's thickness. Select the line to expand its members.
On a drill-down board, an import that leaves the board's scope ends at a boundary port. This ghost node carries the name of the parent-board node the import reaches, and its badge opens that node on the parent board.
Edges follow the routes the layout computes. When you drag a node, its edges move freely until the next layout.
A line shows its edge's weight: one or two imports draw thin and dotted, ten or more draw solid and heavy.
Selection is focus. When you select a node, the canvas keeps that node, everything inside it and the nodes its drawn edges reach at full strength, and fades the rest. When you select an edge, its two ends stay at full strength. Press Escape or click the canvas to clear the selection. An open insight trail takes precedence and highlights exactly the edges it follows.
The edge lens at the bottom-left of the canvas filters edges across the whole board. The page link carries the lens (?edges=), so a shared layer opens with the same lens:
The lens only sets what draws by default: a selection or an open trail always draws the edges it names.
Managing the library
You add and edit archetypes, and review the ones a plugin proposes, in one place. Archetypes covers the catalogue, its form, and how a colour change applies to boards that already exist.