Yjs
No written verdict yet. Here is what commenters said.
Why people recommend it
“Highly suggest you take a look here: https://github.com/yjs/yjs”
“I use Y.js for collaborative editing in my product”
Show 3 more
“This is an implementation of FugueMax (Weidner and Kleppmann) done using a bunch of tricks from Yjs (Jahns).”
“the only 3rd party library I used was the excellent Y.js for the CRDT stack”
“the DX is fantastic”
Caveats and dissent
“The docs are fragmented, and the nature of y”JS”, locks the whole code into Javascript infrastructure.”
“recommending y-prosemirror for anything feels unserious”
Show 2 more
“This is much, much harder than it looks, and it's inherently lossy”
“I feel like their issue is with Yjs, not CRDTs in general.”
Often compared with
Who recommends it in their own words
From the makers not counted in the ranking
“Yjs is a general-purpose framework that enables you to make EVERYTHING collaborative.”
Threads where it came up
- Lies I was told about collaborative editing, Part 2: Why we don't use Yjs 13 mentions
- France's homegrown open source online office suite 2 mentions
- Compendium – Shared workspace for teams and AI agents 1 mention
- The open source DOCX editor submitted to HN a few weeks ago has been deleted 1 mention
- Ask HN: What are tools you have made for yourself since the advent of AI 1 mention
- Show HN: Open-source Workspace (mail,docs,spreadsheet,drive) web/iOS 1 mention
Also written as yjs, Y.js. Data: yjs.json. Quotes are verbatim; the verdict and theme labels are written by a model from these comments, and every clause links to its sources.
All comments 34
“Real-time collaboration on documents runs on Yjs CRDTs over CodeMirror 6”
“It has a golang backend that reads/writes docx and translates to YJS”
“runs entirely in the browser with yjs”
“served with yjs to clients”
“The docs are fragmented, and the nature of y”JS”, locks the whole code into Javascript infrastructure.”
“Highly suggest you take a look here: https://github.com/yjs/yjs”
“The Yjs binding is optimized to only sync the delta”
“I use Y.js for collaborative editing in my product”
“This is an implementation of FugueMax (Weidner and Kleppmann) done using a bunch of tricks from Yjs (Jahns).”
“the only 3rd party library I used was the excellent Y.js for the CRDT stack”
“We would have paid for Yjs too, if we thought it was a good use of resources!”
“Yjs handles the CRDT state in memory”
“recommending y-prosemirror for anything feels unserious”
“the DX is fantastic”
I feel we were quite lucky back in 2015 when we started rewriting CKEditor with RTC as a core requirement. At the time, OT seemed like the only viable option, so the choice was simple :) What definitely helped too was having a very specific use case (rich-text editing) which guided many of our decisions. We focused heavily on getting the user experience right for common editing scenarios. And I fully agree that it's
FWIW, I'm literally working on rewriting the y-prosemirror binding today with Kevin Jahns, the creator of Y.js and wrote the initial binding. Yes, the current binding has it's flaws, but we hope to flush out the most egregious of them with a completely different design which I made a presentation about at FOSDEM this year: https://fosdem.org/2026/schedule/event/8VKQXR-blocknote-yjs-prosemirror/
“YJS works perfectly. I use it for years on PlayCode.”
“Since Yjs doesn't care about order or operations”
“But Yjs's actual implementation is very clever and I'm quite confident its correct.”
“This is much, much harder than it looks, and it's inherently lossy”
“I feel like their issue is with Yjs, not CRDTs in general.”
“the implementation is based on yjs”
“which basically does the same thing along with Automerge”
“I'm not sharding Yjs per file”
“Everything stored in the browser with YJS”
“really fluid, skeuomorphic experiences like those enabled by, eg pragmatic-drag-and-drop[0] or yjs[1]”
“Yjs for the same doc grows every time someone types, pastes, or undoes.”
“ephemeral yjs/hocupocus sync infrastructure”
“Docs, bloknotejs & Yjs”
“related projects like Yjs (https://yjs.dev) by sponsoring feature development”
“Yjs has its own representation of the state as a CRDT tree”
“built with React, Zustand, and Yjs for real-time collaboration”
“Kevin's optimization work on Yjs is masterful”
“too complex (Automerge/Yjs require learning CRDTs)”