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 typesY.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