Yjs
The most recommended of 3 CRDT libraries
Free library that merges concurrent edits automatically and performs well; critics say editor bindings replace whole documents and are hard to make fast.
Free library that merges concurrent edits automatically and performs well; critics say editor bindings replace whole documents and are hard to make fast.
40 people gave an opinion
- recommend it
- 26
- criticize it
- 14
- approval share
- 65%
Recommended in 8 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: not recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: not recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 26 people recommend itNeeds 10 or more, met.
- 1.8 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 8 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Automatically merges concurrent edits without conflicts
“They beautifully allow me to reason about conflicts - so that my users don't have to.”
Comment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “Yjs merges the edits concurrently.”
Comment from 13 Mar 2026 in “Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian” “No conflicts, no overwrites.”
Comment from 5 May 2026 in “Show HN: Brainio – Markdown notepad that turns notes into visual mind maps” Makes multi-user features easy to build
“really fluid, skeuomorphic experiences like those enabled by, eg pragmatic-drag-and-drop[0] or yjs[1]”
Comment from 8 Mar 2026 in “Show HN: µJS, a 5KB alternative to Htmx and Turbo with zero dependencies” “the technical foundation of sparse rendering and multi-user interactions were easy enough with Yjs”
Comment from 28 May 2026 in “Show HN: Open-source Workspace (mail,docs,spreadsheet,drive) web/iOS” “It is a good abstraction to make anything collaborative”
Comment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” Clever, well-regarded implementation
“Yjs's actual implementation is very clever and I'm quite confident its correct.”
Comment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “Kevin's optimization work on Yjs is masterful”
Comment from 19 Dec 2025 in “Show HN: SyncKit – TLA+ verified CRDT for local-first apps (zero unsafe Rust)” “The Yjs-as-storage-backend trick is clever”
Comment from 21 Apr 2026 in “A type-safe, realtime collaborative Graph Database in a CRDT” Fast and small documents
“Yjs documents are, if created well, both really fast and small.”
Comment from 21 May 2026 on Hacker News “The diffing part makes it fast.”
Comment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”
What people warn about
Each mark is one comment
Editor bindings replace whole documents
“the Yjs authors clearly state that they purposefully designed its interface to ProseMirror to delete and recreate the entire document on every collab keystroke”
Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “the Yjs data structure and y-promirror diffing algorithm destroying and creating new XML nodes”
Comment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “Yes, the current binding has it's flaws, but we hope to flush out the most egregious of them”
Comment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” - Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”
History and position mapping get complicated
“allowing histories to drift too far will absolutely risk stomping all over user intent”
Comment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “position mapping is very complicated in the Yjs world”
Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “grows every time someone types, pastes, or undoes”
Comment from 4 Mar 2026 in “An Interactive Intro to CRDTs” Hard to meet editor performance targets
“it's empirically very challenging to meet the 16ms perf budget even in the simplest possible realistic collab scenario”
Comment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “I always battle against two issues and ultimately quit because they're really hard to do efficiently”
Comment from 20 May 2026 on Hacker News “the project did not understand what modern text editors need to perform well in any circumstance”
Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” Official paper's proofs questioned
“the official paper on Yjs is just plain wrong, the "proofs" it contains are circular”
Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs” “If you ignore the paper and just look at the source code”
Comment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”
Other CRDT libraries people recommend
The two most recommended other CRDT libraries, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 3 CRDT libraries, rankedWhat people said
40 of the 54 comments that mention it, newest first. Each links to the original comment.
“I wonder if something inspired by this design could make its way into the new Yjs version”
“Good to see CodeMirror and yjs in there.”
“the technical foundation of sparse rendering and multi-user interactions were easy enough with Yjs”
“Yjs can indeed be hard to understand well”
“Yjs documents are, if created well, both really fast and small.”
“I always battle against two issues and ultimately quit because they're really hard to do efficiently”
“Highly suggest you take a look here”
“No conflicts, no overwrites.”
“The Yjs-as-storage-backend trick is clever”
“How dos Yjs handle schema migrations? If I add a property to a vertex type that existing peers have cached, does it conflict or drop the unknown field?”
“Automated find-and-replace is particularly bad in yjs/ytext because deletes are idempotent but inserts are not.”
“the Yjs data structure and y-promirror diffing algorithm destroying and creating new XML nodes”
“It is a good abstraction to make anything collaborative”
“allowing histories to drift too far will absolutely risk stomping all over user intent”
“it's empirically very challenging to meet the 16ms perf budget even in the simplest possible realistic collab scenario”
“the DX is fantastic, and personally I love the idea of my application being truly local-first”
“It's incredibly useful to have control over the granularity of updates”
“The diffing part makes it fast.”
“They beautifully allow me to reason about conflicts - so that my users don't have to.”
“we hope to address a number of the fundamental design choices that were made 6 years ago”
“Yes, the current binding has it's flaws, but we hope to flush out the most egregious of them”
“CRDT editor integrations (at least the ones for Yjs and Automerge) are often shockingly sloppy”
“Yjs's actual implementation is very clever and I'm quite confident its correct.”
“the fact that Yjs bindings, by design (for ~6 years), replace the entire document”
“position mapping is very complicated in the Yjs world”
“the project did not understand what modern text editors need to perform well in any circumstance”
“Y.js 14 and the new y-prosemirror binding fix a lot of the encountered issues”
“If you ignore the paper and just look at the source code”
“I hope that won't end up being an issue...”
“the official paper on Yjs is just plain wrong, the "proofs" it contains are circular”
“the Yjs authors clearly state that they purposefully designed its interface to ProseMirror to delete and recreate the entire document on every collab keystroke”
“This is a design limitation of the official y-Prosemirror bindings”
“resonates with issues I encountered when trying to productionise a yjs backed feature”
“Yjs merges the edits concurrently.”
“really fluid, skeuomorphic experiences like those enabled by, eg pragmatic-drag-and-drop[0] or yjs[1]”
“grows every time someone types, pastes, or undoes”
“Shout out to Yjs, ProseMirror and BlockNote on which we relied to build LaSuite Docs”
“Kevin's optimization work on Yjs is masterful”
“Aside from all the usual reasons I'd avoid using a <1mo dependency over something like Yjs”
“Mature CRDT with good P2P support”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.