Figr AI
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
- 01 Git as the datastore, not an event log — commit, log, reset and show are the version model, for free.
- 02 S3 Files mount over object blobs — the tree needs partial writes and real directory structure.
- 03 One commit per action under a per-project mutex — ordered, bounded, inspectable history.
- 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.