Skip to content

Canvas

A canvas is a board you arrange notes on: cards, groups, images, embedded web pages, and labelled arrows between them. Crucible reads and writes JSON Canvas 1.0, the .canvas format Obsidian uses, so a board opens in either application without conversion.

Using that spec rather than inventing a format is deliberate. Interoperating with a vault you already have is worth more than anything a bespoke format would buy, and a canvas Crucible saves is byte-identical to one Obsidian saves — the same key order, the same indentation — so the two never fight over a file in version control.

Canvases live in a kiln alongside notes. Open one from the file tree in the web UI, or read a published board on this site — the Canvas Tour is this documentation kiln’s own board, rendered from the same .canvas file the application edits.

What a card can be

CardHolds
NoteA live view of a real note. Editing the card edits the file.
TextMarkdown stored inline in the board, wikilinks included.
Web pageAn embedded page.
Image / mediaAny image, audio, video or PDF in the kiln.
GroupA labelled backdrop grouping the cards inside it.

Arrows carry a direction, a colour, and an optional label. An arrow with neither end specified is a one-way arrow — that asymmetry is in the spec, not a quirk of this implementation.

Canvases are part of the graph

A canvas contributes to the knowledge graph the same way a note does. Each note card becomes a link to that note, and wikilinks written inside text cards count too — so a note’s backlinks include the boards that reference it.

Obsidian does neither. Canvas references never appear in backlinks there, and text-card wikilinks never appear at all. Renaming or moving a note rewrites the canvases that point at it, so a board does not rot when the kiln is reorganised.

References stay inside their kiln

A canvas may only reference files inside the root that owns it — the specific kiln, or, for a board that lives in a code repository rather than a vault, that project. A board is portable knowledge: one reaching outside its kiln breaks the moment the kiln is copied or synced, and one reaching into a project root turns a knowledge document into a reader for source code.

This is enforced when the board is saved and again when it is read, so editing the file by hand is not a way around it. A reference to a note that was merely deleted stays legal — it renders as a broken card rather than invalidating the whole document.

Embedded web pages

A web card renders the live page. That means opening a board contacts every third party it references, so the frame is sandboxed into an opaque origin: it can run scripts and submit forms, but cannot reach Crucible’s own session, and cannot escape the sandbox. Only http and https addresses can be embedded.

A card ignores the pointer until you select it, which is what keeps an unselected card draggable.

On this documentation site, web cards are links rather than live frames — a documentation page that silently contacted every third party a board mentions would be a worse bargain than the application’s, not a better one.