22.8k stars · MIT · v14.0.0-rc.20 (2026-06-22) — a RELEASE CANDIDATE; the stable series is v13 · Track this in Scout
The CRDT everyone uses — several people editing one document at once, offline edits merging cleanly later.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A CRDT library. That is a data structure which lets several people edit one document at the same time without locking, and lets one person's edits survive going offline and merge in cleanly later.
What it is good for. Any app whose promise is that a long conversation becomes a shape you can see runs into the same wall. The moment a map is worth looking at, it is worth showing to somebody. Without this, the best on offer is a screenshot (Ed. 8 #8) or a Mermaid diagram (Ed. 12 #10). Both are dead copies with the app itself cropped out. A live shared map is a different product. It also makes notes on individual nodes possible without inventing your own conflict rules, which is not a thing anyone wants to invent.
- MIT licence, mature, and the standard answer here. The editor and canvas tools already work with it.
- Works offline and merges afterwards, which matters on the phone.
- One document can drive both the React Flow canvas and the react-arborist tree (Ed. 7 #11) at the same time.
- Live collaboration is a product decision with a websocket service behind it. It is not an afternoon's work.
- Saving and access control are yours to build. A shared document is a sign-in problem, so Logto (Ed. 11 #4) comes first.
- The current line is version 14.0.0-rc, which is a test version. The stable line is 13. Decide on purpose which line to build on.
npm install yjs Then a small Node websocket service next to FastAPI, with the document saved into the PostgreSQL you already run.
npm install yjs
