Aa

reading preferences

appearance
prose
face

Figr AI

design canvas

Using git as the versioned datastore for a live collaborative canvas

AI Systems / Performance

system

An infinite design canvas stored as a per-project git repository on an S3 filesystem mount.

pressure

Board state needed real history, branching, and time-travel across concurrent agent and human edits — a mutable JSON blob could give none of that.

change

Board state lives in a project-level git repo on an S3 Files (NFSv4.2) mount; every action is a commit written through a virtual-mount layer, under a per-project FIFO lock.

decisions

  1. 01 Git as the datastore, not an event log — commit, log, reset and show are the version model, for free.
  2. 02 S3 Files mount over object blobs — the tree needs partial writes and real directory structure.
  3. 03 One commit per action under a per-project mutex — ordered, bounded, inspectable history.
  4. 04 Live op-subscribed state vs a frozen `git show` view state — time-travel without forking the render path.

The storage substrate under an infinite AI whiteboard: what it takes to run git as a live, concurrent datastore on a network filesystem — path resolution, commit ordering, and reading history without stalling the render loop.