How we sync boards with CRDTs
Soren Kail ·
Every PlanPepper board is a Yjs document. Each client edits its own replica and exchanges compact binary updates that always merge to the same result.
Updates flow over WebSockets to a serverless backend that appends them to a log and fans them out to everyone on the board. Periodically the log is compacted into a snapshot.
Because merges never conflict, you can keep working offline and your edits flow back in the moment you reconnect.