Model
A board is a document with objects. An object has an identifier, a type, a size, a position, and, for text types, text. The type defines behaviour: a sticky note moves freely, a card lives in a kanban cell, a connector joins two objects.
| Type | Moves | Contains text | Can be a connector end |
|---|---|---|---|
| Sticky note | yes | yes | yes |
| Shape | yes | yes | yes |
| Text | yes | yes | yes |
| Frame | yes | no | no |
| Kanban | yes | no | no |
| Card | inside a cell | yes (title) | yes, through its cell |
| Connector | no | yes | no |
Layers and order
Objects lie in layers: kanban and frames below, sticky notes and shapes above, text on top of everything. The order is set by type, not by what you dragged last. That is why a label does not end up under a sticky note by accident.
Coordinates and camera
The board world is infinite. The camera defines what is visible: position and scale. An object that leaves the screen is not lost — it stays in its place in the world, and the camera looks at another point. This gives a practical rule: do not move the camera to "bring an object back" — use zoom and the board overview.
Selection
The selection is a temporary set of objects: it is not stored on the board and other participants do not see it. Therefore:
- the selection rectangle captures what falls inside it;
- delete, move, and align act on the whole set;
- the selection survives a redraw and does not depend on who else is looking at the board.
Frames and kanban
A frame is a container: an object inside it moves with it. A kanban is a grid of cells: a card belongs to a column and a swimlane, and its position is set by the order in the cell, not by coordinates on the canvas. These are different models, and the interface behaves differently.
What is not here
- Per-object permissions. The board is the unit of access; a lock coordinates edits and is not an ACL.
- Nested comments. A thread is flat: a root and replies.
- Mentions and notifications in comments.
- Layers with independent hiding. Order exists; hiding a layer does not.
What else an object carries
| Capability | Where it lives |
|---|---|
| Status, assignee, date range | card fields; a kanban column is a separate place |
| Tags | board vocabulary, tagIds on the object |
| Link | one field: an external URL or another board object |
| Lock | a flag and an author; the author or a board manager releases it |
| Comments | a server thread anchored to an object or a point |
| Reactions | a live burst near the cursor; not stored |
Where to go next
/guide/capabilities/canvas — what the canvas gives you and where it ends.