Canvas and applets
A shared surface everyone in the workspace sees at once, with live cursors — and applets, which are small HTML apps that run on it against real workspace data.
The canvas
Every workspace has a canvas. Objects move in realtime for everyone looking at it, and other members' cursors are visible as they work.
Object types: rectangles, ellipses, diamonds, arrows, lines, freehand pen strokes, text, sticky notes, images, video, files, and applets. Files and images can be dropped straight onto the surface.
Projects
The canvas is divided into projects — named, ordered surfaces within a workspace, each with its own background and its own set of objects.
A project is more than a canvas page: channels and threads are scoped to one, so switching project switches which conversations the sidebar shows. DMs stay global — a direct message is between two people, not part of a project.
A channel created while a project is active is stamped with it. A channel with no project is shown in every project, which is what makes existing channels keep working when projects are introduced.
A project can also record a local path, a project kind, and a git root and remote, which is what lets a project on the canvas correspond to a checkout on disk.
Applets
An applet is a small HTML application placed on the canvas. It runs in a sandboxed frame and talks to the workspace through a narrow message bridge — it cannot reach the app directly.
Two applets ship with the app:
- Task Kanban — a live board over the workspace's real tasks.
- Calculator — a standard calculator with keyboard support and persistent state.
Applets can also be written in the app; an applet's source is markdown carrying an HTML block, edited in a code editor with syntax highlighting.
The bridge
What an applet may do is an allowlist, not a filter. A Task Kanban applet can set the user-editable fields of a task and nothing else; anything else it asks for is dropped. Unknown bridge messages are logged and discarded.
Theming
The canvas hands each applet the active theme, so an applet written once matches whichever theme the reader has chosen rather than shipping its own colours.
Applets and chat artifacts are rendered as sandboxed frames running agent-authored HTML. They inherit the page's content policy, and they are deliberately not named in the microphone permission grant, so an applet can never capture audio.