3 ms·
Related to this is also an example from ProseMirror (which TipTap uses as the editing component) [0][1] I'm not completely sure, but I think at ProseMirror the
by qwertox 4y ago
Related to this is also an example from ProseMirror (which TipTap uses as the editing component) [0][1]
I'm not completely sure, but I think at ProseMirror they're using Yjs [2] for the collaborative editing part. If not, checking out Yjs is worth it in and of itself.
> Yjs is a CRDT implementation that exposes its internal data structure as shared types. Shared types are common data types like Map or Array with superpowers: changes are automatically distributed to other peers and merged without merge conflicts.
> Yjs is network agnostic (p2p!), supports many existing rich text editors, offline editing, version snapshots, undo/redo and shared cursors. It scales well with an unlimited number of users and is well suited for even large documents.
> Conflict-free replicated data types (CRDT) for collaborative editing are an alternative approach to operational transformation (OT). [3]
OT was what Google Wave was based on and I think current colab editing in Google Docs and other of their office products use this.
[0] https://prosemirror.net/examples/collab/#edit-Example https://prosemirror.net/examples/collab/#edit-Example
[1] https://marijnhaverbeke.nl/blog/collaborative-editing.html https://marijnhaverbeke.nl/blog/collaborative-editing.html
[2] https://github.com/yjs/yjs https://github.com/yjs/yjs
[3] https://github.com/yjs/yjs#Yjs-CRDT-Algorithm https://github.com/yjs/yjs#Yjs-CRDT-Algorithm
- jahewson 4y ago> I think at ProseMirror they're using Yjs No, ProseMirror has its own approach to sync. > OT was what Google Wave was based on and I think current colab editing in Google Docs and other of their office products use this. Yep.
- samwillis 4y agoProseMirror has its own OT system developed by its lead developer. However the developer behind Yjs has created Yjs bindings for it that are first class! The team behind TipTap (built on top of ProseMirror), created the Hocuspocus server backend for Yjs and collaborative text editing.