cosmocode / dokuwiki-plugin-prosemirror

A modern WYSIWYG editor for DokuWiki
https://wysiwyg.wiki.cosmocode.de/
54 stars 20 forks source link

Multiplayer mode (real time collaboration) #154

Open solarkraft opened 2 years ago

solarkraft commented 2 years ago

Would be useful for brainstorming about a page and collaboratively entering ideas.

Currently you can't edit or even see a page's content until the currently editing user saves the page, which isn't seamless for them either (in-between step towards that goal: some kind of "publish" button or other way to save without leaving the editor).

This is probably a "hecking chonker" of a feature to implement, but maybe someone feels like doing it and it would be interesting to get some discussion about it going (how feasible is it with the backend? What would be the best approach?).

ProseMirror seems to already include a lot of the infrastructure required to do this, the most uncertain part appears to be the server-side (How will the locking stuff work? How much implementation work will be required for the collaboration server?).

There is luckily quite a bunch of prior art available:

Reference implementation: https://prosemirror.net/examples/collab/ High level blog post: https://open.nytimes.com/we-built-collaborative-editing-for-our-newsrooms-cms-here-s-how-415618a3ec49 Detailed blog post: https://marijnhaverbeke.nl/blog/collaborative-editing.html Discussion: https://discuss.prosemirror.net/t/guide-docs-for-writing-server-code-that-enables-collaborative-editing/ (lean) Go server implementation: https://discuss.prosemirror.net/t/a-port-in-go-of-prosemirror-for-writing-a-collaborative-editing-server/2380 PHP server implementation: https://github.com/tedchou12/prosemirror_server