Hacker ApprovedDepartments

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%
Each figure is one person. RecommendsCriticizes

Recommended in 8 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: not recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: not recommended
  10. August 2026: not recommended
  11. September 2026: recommended
  12. October 2026: not recommended
  13. 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”
  • 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.

Yjs compared with 2 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
YjsThis page261465%8——
Automerge7750%4——
Loro6186%4——
See all 3 CRDT libraries, ranked

What 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”

MixedComment from 18 Sep 2026 in “How Notion handles concurrent editing with CRDTs”

“Good to see CodeMirror and yjs in there.”

RecommendsComment from 26 Jun 2026 in “Show HN: OpenKnowledge – open-source alternative to Obsidian/Notion”

“the technical foundation of sparse rendering and multi-user interactions were easy enough with Yjs”

RecommendsComment from 28 May 2026 in “Show HN: Open-source Workspace (mail,docs,spreadsheet,drive) web/iOS”

“Yjs can indeed be hard to understand well”

MixedComment from 21 May 2026 on Hacker News

“Yjs documents are, if created well, both really fast and small.”

RecommendsComment from 21 May 2026 on Hacker News

“I always battle against two issues and ultimately quit because they're really hard to do efficiently”

CriticizesComment from 20 May 2026 on Hacker News

“Highly suggest you take a look here”

RecommendsComment from 14 May 2026 in “Quack: The DuckDB Client-Server Protocol”

“No conflicts, no overwrites.”

RecommendsComment from 5 May 2026 in “Show HN: Brainio – Markdown notepad that turns notes into visual mind maps”

“The Yjs-as-storage-backend trick is clever”

RecommendsComment from 21 Apr 2026 in “A type-safe, realtime collaborative Graph Database in a CRDT”

“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?”

MixedComment from 21 Apr 2026 in “A type-safe, realtime collaborative Graph Database in a CRDT”

“Automated find-and-replace is particularly bad in yjs/ytext because deletes are idempotent but inserts are not.”

MixedComment from 7 Apr 2026 in “Show HN: Opensidian: Local-first notes in the browser with POSIX shell and sync”

“the Yjs data structure and y-promirror diffing algorithm destroying and creating new XML nodes”

CriticizesComment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“It is a good abstraction to make anything collaborative”

RecommendsComment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“allowing histories to drift too far will absolutely risk stomping all over user intent”

CriticizesComment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“it's empirically very challenging to meet the 16ms perf budget even in the simplest possible realistic collab scenario”

CriticizesComment from 18 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“the DX is fantastic, and personally I love the idea of my application being truly local-first”

RecommendsComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“It's incredibly useful to have control over the granularity of updates”

CriticizesComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“The diffing part makes it fast.”

MixedComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“They beautifully allow me to reason about conflicts - so that my users don't have to.”

RecommendsComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“we hope to address a number of the fundamental design choices that were made 6 years ago”

MixedComment from 17 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”

MixedComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“CRDT editor integrations (at least the ones for Yjs and Automerge) are often shockingly sloppy”

CriticizesComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“Yjs's actual implementation is very clever and I'm quite confident its correct.”

RecommendsComment from 17 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“the fact that Yjs bindings, by design (for ~6 years), replace the entire document”

CriticizesComment from 16 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”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“the project did not understand what modern text editors need to perform well in any circumstance”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“Y.js 14 and the new y-prosemirror binding fix a lot of the encountered issues”

RecommendsComment 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”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“I hope that won't end up being an issue...”

MixedComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“the official paper on Yjs is just plain wrong, the "proofs" it contains are circular”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“the Yjs authors clearly state that they purposefully designed its interface to ProseMirror to delete and recreate the entire document on every collab keystroke”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“This is a design limitation of the official y-Prosemirror bindings”

RecommendsComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“resonates with issues I encountered when trying to productionise a yjs backed feature”

CriticizesComment from 16 Mar 2026 in “Lies I was told about collaborative editing, Part 2: Why we don't use Yjs”

“Yjs merges the edits concurrently.”

RecommendsComment from 13 Mar 2026 in “Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian”

“really fluid, skeuomorphic experiences like those enabled by, eg pragmatic-drag-and-drop[0] or yjs[1]”

RecommendsComment from 8 Mar 2026 in “Show HN: µJS, a 5KB alternative to Htmx and Turbo with zero dependencies”

“grows every time someone types, pastes, or undoes”

CriticizesComment from 4 Mar 2026 in “An Interactive Intro to CRDTs”

“Shout out to Yjs, ProseMirror and BlockNote on which we relied to build LaSuite Docs”

RecommendsComment from 7 Feb 2026 in “France's homegrown open source online office suite”

“Kevin's optimization work on Yjs is masterful”

RecommendsComment from 19 Dec 2025 in “Show HN: SyncKit – TLA+ verified CRDT for local-first apps (zero unsafe Rust)”

“Aside from all the usual reasons I'd avoid using a <1mo dependency over something like Yjs”

RecommendsComment from 28 Nov 2025 in “Show HN: SyncKit – Offline-first sync engine (Rust/WASM and TypeScript)”

“Mature CRDT with good P2P support”

RecommendsComment from 28 Nov 2025 in “Show HN: SyncKit – Offline-first sync engine (Rust/WASM and TypeScript)”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.