Compass.
A living roadmap for product bets — Strategy that survives contact with Monday: a Now/Next/Later board where every bet carries effort, confidence and an owner — multiplayer over CRDTs, so the plan is always the latest plan.
Overview
We ran the strategy engagement, then built the tool so it wouldn't die in a slide deck. Compass turns bets into cards with confidence and effort, computes portfolio conviction, and keeps the whole thing live for everyone at once.
The build
Realtime sync is Yjs CRDTs over WebSockets — no save button, no merge conflicts, works through flaky Wi-Fi in a workshop room. A small Node service snapshots history to PostgreSQL so every quarter's plan is diffable.
- Yjs CRDT multiplayer, offline-tolerant
- Conviction score from confidence × horizon
- Quarterly snapshots, diffable history
- Exports to the board deck automatically
The outcome
The leadership team kills weaker bets faster and can point at why. The roadmap review meeting dropped from ninety minutes to twenty — the board reads itself.
First strategy doc our team actually opens on purpose.
Under the hood
Multiplayer over Yjs CRDTs on WebSockets means no save button and no merge conflicts; a Node service snapshots board state into PostgreSQL so every quarter's plan is diffable history.
- CRDT sync: offline edits merge cleanly
- Conviction score recomputed on every change
- Immutable quarterly snapshots, diff view
- Board-deck export generated server-side
Also considered Linear/Notion databases — good tools, but conviction math and workshop multiplayer needed their own surface.