Lita 조원경
2.8K posts

Lita 조원경
@litacho
into devtools. Avid splitboarder. CTO at @moment_dev. previously @lyft and @Dreamworks. @recursecenter W14! She/Her




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…










Moment is Google docs, but for markdown, with a git backend.










