Concepts

Canvases

Visual artifacts your operators populate with live data — briefs, decks, dashboards. Mustache + frontmatter, refreshed by tool calls.

A canvas is a visual artifact your operators can populate, refresh, and re-render. Think briefs, decks, dashboards, status boards — anything where the layout matters as much as the words.

Canvases page — three tabs (Installed, Library, Design) and a "Compose your operators' canvases" header

Under the hood, a canvas is just a markdown template with Mustache tags and frontmatter data sources. An operator fills the data, the canvas re-renders. Same canvas + new data = the next week's report, no manual formatting.

Three tabs

  • Installed — canvases your guild has added. Each one is a Mustache template + a data source contract.
  • Library — the marketplace. Curated starters (Marketing brief, Sales one-pager, Weekly status) you can install with one click.
  • Design — design tokens that style every canvas at once. Brand colors, typography, spacing — change here, every canvas reflects it.

Canvas vs artifact vs file

Same content stored three ways for three audiences:

  • Artifact — the canonical record. Versioned. Indexed for search. Listed on the Artifacts page.
  • Workspace file — the markdown source lives in your workspace as a regular file. Edit it in claude-code or any editor; the canvas re-renders.
  • Canvas — the rendered, visual surface you and your team look at.

This three-way mapping (artifact + file + canvas) is intentional: machines read the file, humans look at the canvas, the artifact is the durable identity.

Creating one

Two paths:

  1. Install from the library — pick a template, customise the data source, your operators start producing canvases that match it.
  2. Have an operator draft a fresh canvas — describe what you want, the operator generates the template + initial data + ships the rendered canvas to the Installed tab.

Refreshing data

Canvases hold a contract: "this template needs these fields." When the data goes stale (new week, new campaign, new release), an operator calls the refresh — fetch new data, fill the template, save a new version. The visual canvas updates; the underlying file/artifact gets a new version.

What's next