Open juliushaertl opened 2 years ago
We also need to look into authentication - both of the clients connecting to the hokuspokus server as well as the auth of the write from the hokuspokus server to storage backends - especially if those are special backends such as shares or external storages.
As discussed, let's focus on the following in order:
https://discuss.yjs.dev/t/stateless-server-broadcasting-implementation-in-go/393 Is an interesting read for the option to reuse our php backend as a fallback with y.js, so this should work while having no compression of the previous steps (which we don't have anyways with the current approach) so y.js would even be more lightweight by not using json for the steps.
https://github.com/nextcloud/text/tree/experiment/yjs has a minimal working tiptap2 collaboration based on tiptaps public websocket server.
https://github.com/nextcloud/text/tree/experiment/minimal-yjs keeps more of our current session handling.
Initial Experiments
Drop in Replacement
https://github.com/nextcloud/text/issues/2847
Use the yjs based collaboration extension with the existing server API (+small modifications). Turn the sync service provider experiment into a working solution.
Explore combining with other providers
During company week:
Combine with Hocuspocus
Use Hocuspocus to send steps and awareness messages between clients more efficiently.
Awareness (user presence and authorship)
Fully integrate
Combine the various providers seamlessly and make use of their strength.