tool
Yjs
created 2026-05-25 crdt · collaboration · sync · local-first · javascript · typescript
Yjs
The most-deployed JavaScript/TypeScript crdt|CRDT framework, designed for collaborative editing. The default sync layer for many local-first and real-time collab products.
What it gives you
- Shared data types —
Y.Map,Y.Array,Y.Text,Y.XmlFragment,Y.XmlElement— that mutate locally and converge across replicas without coordination. - YATA algorithm under the hood for sequence CRDTs (the text/array internals).
- Pluggable network providers — y-websocket, y-webrtc, y-leveldb, y-indexeddb. Compose persistence + transport.
- Editor bindings — first-class integration with ProseMirror, TipTap, Slate, Quill, Monaco, CodeMirror.
- Undo/redo manager that respects collaborative history.
When to pick Yjs over automerge
- Building a collaborative text editor → Yjs has the deepest editor ecosystem.
- Need rich-text with formatting (deltas, decorations) → YATA + editor bindings handle it.
- Want WebRTC peer-to-peer without a server → y-webrtc.
Pick automerge when the data model is document-shaped JSON (notes, designs, structured documents) and history/branching matters.
Used by
- Many local-first editors and SaaS collaboration features (Linear-style sync layers, collaborative IDEs).
- Mentioned in the CAP video as a representative of the modern partition-recovery toolchain alongside automerge.
See also
- crdt — the underlying theory
- automerge — the JSON-document alternative
- egwalker — newer text-CRDT algorithm Yjs’s YATA can be compared against
- local-first-software — the architecture Yjs enables