Blending Links
Start a board
Open format

OCIF, an open file format for whiteboards

Every board here is an OCIF file: the Open Canvas Interchange Format, an open, documented way of writing down what is on an infinite canvas. You can download it whenever you like and open it somewhere else.

What OCIF is

OCIF is a JSON format for canvases — whiteboards, mind maps, diagrams — developed in the open by the Open Canvas Working Group at canvasprotocol.org. A file lists the nodes on the canvas with their position and size, the relations between them, and the resources they show, such as the text on a note.

What a node is — a rectangle, an arrow, a sticky note — is said by extensions attached to it. The format defines 17 of its own, and anyone can publish more. A reader that does not know an extension keeps it and ignores it, so a file loses nothing on the way through a tool that understands less of it.

Why a whiteboard should use an open format

  • You can leave. A board in a private format is only as useful as the product that reads it. A board in an open one outlives any product, this one included.
  • You can hand it over. The client a workshop was for gets the board itself, not a screenshot of it.
  • You can build on it. A plain JSON file can be checked into a repository, searched, converted or generated by a script.

How Blending Links uses it

OCIF 0.7.0 is the native format, not an export option added later: what you see on a board is an OCIF document, and Export gives you that document as an .ocif.json file. Import OCIF… on the board list brings a file back as a new board.

Every file is checked against the OCIF schema and every extension it uses, with the schemas for ours written into the file itself, so it validates without a network connection. A note written by us still reads, in a tool that has never heard of us, as a coloured rectangle with text in it.

Our extensions

Where OCIF has no word for something a workshop board needs, we define one under @bl/…, published at https://blendinglinks.com/ocif/<name>/0.1. Several exist so that boards brought over from other whiteboard tools keep what they had.

@bl/board
The board's name and description.
@bl/origin
Where an imported item came from, optionally with its original data, so nothing is lost on the way.
@bl/sticky
A sticky note: its colour, shape and text alignment. Other readers see a coloured rectangle with text.
@bl/stack
A pad of identical notes or tags. Dragging it peels off a fresh copy, or tags the note it lands on.
@bl/legend
The kinds of note a board is modelled with, shown as a floating key.
@bl/shape
Shapes beyond a rectangle and an oval, with styling the built-in shapes cannot express.
@bl/frame
A frame, holding the items inside it so they move together.
@bl/connector
Connector details beyond OCIF's own edges and arrows, which are always written as well.
@bl/image
An image, and how it fits its box.
@bl/document
An uploaded file, such as a PDF, shown as a card.
@bl/embed
A link with a preview.
@bl/card
A card with a title and a description.
@bl/tags
Tags on a note, shape or card.
@bl/author
Who made a note, and whether the name is shown on it.
@bl/comments
A thread of comments on an item, with the people each one mentions.
@bl/mindmap
A mind-map node, kept as text linked to its parent.
@bl/doc
A rich document on the board, kept as Markdown.
@bl/unsupported
An item that could not be mapped: a placeholder that keeps its place and size, with the original data kept to recover it.
Other formats: a board also opens from and exports to Excalidraw, JSON Canvas, Markdown and CSV, and the file converter does the same for a file without making a board. The OCIF community's tools convert further; see the validator and converters.