Introduction

Umbra is a local-first infinite canvas where a team plans, tracks and presents its work — with the boards stored as files on your own disk.

Umbra is a desktop app for the planning layer of office work. Ideating, planning, tracking and presenting are the same activity — figuring out what to do — and they are normally split across four products that do not talk to each other. Umbra puts them on one canvas.

A product launch board in Umbra — notes, columns, a spreadsheet and photographs on one canvas

What it is

  • An infinite canvas. Notes, checklists, tables, text, links, images, files, freehand drawing, shapes, connectors — nineteen kinds of block, all on the same surface. Boards nest inside boards, so a plan can be one card or a hundred.
  • A work model. Frames are columns; a card's status is the column it sits in. Owners, due dates, estimates, blockers, WIP limits and swimlanes on top of that.
  • A presentation tool. The camera is the deck. You define a path through the canvas and present the plan you already made.
  • Local first. A board is a folder of append-only files on your disk. The app never calls home during use, and it opens on a plane.

What it is not

  • Not Figma. No design tooling, no vector editing beyond shapes.
  • Not Jira. No workflows, no sprints, no burndown, no reporting.
  • Not an AI reseller. Umbra drives the agent CLI you already pay for and never sees a prompt or marks up a token.

Where your data lives

Everything is under your application data directory, as plain files:

umbra_data/
  log/
    meta.json              # store id, format version, this device
    ops/<deviceId>.jsonl   # append-only, one writer, never conflicts
    snapshots/<n>.json     # compaction
  assets/                  # files and images you dropped on a canvas

Because each device only ever appends to its own log, two people editing the same board cannot corrupt it — the logs merge. That single decision is what makes multi-user Umbra possible without a server.