nextcloud / text

📑 Collaborative document editing using Markdown
GNU Affero General Public License v3.0
536 stars 86 forks source link

Evaluate text app HPB sync options #2669

Open juliushaertl opened 2 years ago

juliushaertl commented 2 years ago

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.

max-nextcloud commented 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.

juliushaertl commented 2 years ago

As discussed, let's focus on the following in order:

juliushaertl commented 2 years ago

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.

max-nextcloud commented 2 years ago

https://github.com/nextcloud/text/tree/experiment/yjs has a minimal working tiptap2 collaboration based on tiptaps public websocket server.

max-nextcloud commented 2 years ago

https://github.com/nextcloud/text/tree/experiment/minimal-yjs keeps more of our current session handling.