I have been researching collaborative editing in ProseMirror, and it seems that there are mainly two approaches: building it yourself (DIY) or using open-source CRDT bindings for ProseMirror.
The source code for the collab-example is straightforward and easy to understand, but I am unsure how much additional effort is needed to add features like active user cursors, connection status management, and so on.
I would be grateful if you could share your experiences.
Prosemirror-py - works great with Django. I used jsonpatch as well for a long time. Building a backend is really not that difficult.
What is more work is dealing with users that go offline for a while and continue editing and suddenly you have multiple versions of the document that are somewhat incompatible and all of the writers expect that their changes will be preserved. For that we’ve created a relatively complex merge editor based on our own tracked changes system.
Because this is something that users want to do. Just deleting their changes will mean that they never again will touch our editor. Mobile connections in places like German traons are just npt very reliable.