
Launch day! DocNode is live! 🚀 Type-safe collaborative documents with fast, ID-based OT. CRDT mode is on the roadmap. Check out the docs on the site!
German Jablonski
931 posts

@GermanJablo
Building @payloadcms @figma, author of @fluski_app and @docnode

Launch day! DocNode is live! 🚀 Type-safe collaborative documents with fast, ID-based OT. CRDT mode is on the roadmap. Check out the docs on the site!





Ok. For the last, like, 15 years, I've constantly been told that CRDTs (and Yjs in particular) solve collaborative text editing. Both the offline and live-collab cases. After an excruciatingly painful evaluation, I argue not only is this completely false, they're generally not appropriate for production-grade editors... at all. Yeah, I know: everyone uses Yjs, so the problem must be us. Right? That's what I thought too. Well, did you know that on every single collaborative keystroke, Yjs will REPLACE YOUR ENTIRE DOCUMENT? (See this GitHub issue: github.com/yjs/y-prosemir…) Did you know that this is BY DESIGN? (See this discussion on the ProseMirror boards: discuss.prosemirror.net/t/offline-peer…) Did you know that this breaks, like, every editor plugin? (See the ProseMirror author's commentary here: discuss.prosemirror.net/t/offline-peer…) I am not trying to bag on anyone, but to me this kind of mistake belies a fundamental misunderstanding of what text editors need to perform well, in any situation, let alone a collaborative one. Anyway, learn from my pain. I wrote a somewhat long-form article about all the other challenges we ran into with CRDTs on our blog: moment.dev/blog/lies-i-wa…

All the "agent orchestrator" GUIs are vibe coded JS apps. They use too much RAM and CPU. My battery life goes from 10 hours to 2. So I started building a native alternative for MacOS 👀



You really should stop using Github's action runners. I just made a 1 line of code change and cut our CI times by 50%.


