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
[1] https://marijnhaverbeke.nl/blog/collaborative-editing.html
[2] https://github.com/yjs/yjs
[3] https://github.com/yjs/yjs#Yjs-CRDT-Algorithm