Hi all,
it started as an experiment within TiddlyDesktopRS and ended up working pretty well: Real-time collaborative editing on the same tiddler, at the same time, multiple users, same network or through the internet.
TiddlyDesktopRS delivers the API for Yjs
Codemirror 6 provides the Yjs interface
Basically, you create or join a so-called “Room” in the landing page of TiddlyDesktopRS.
Others join that same Room if they have the Room Code and the password.
Somebody that has joined that Room makes a wiki available to that Room and starts syncing it.
That wiki preferrably has the “Codemirror 6 Editor” plugin (get it from here) and the “Codemirror 6 Collaborative Editing” plugin installed (get it through the “Plugins” button in the landing page).
For full functionality also install the “Codemirror 6 SimpleEngine” plugin.
Now peers in that Room will see the wiki, can click on “Get wiki” and choose a directory where to put it.
It will automatically download, be linked to the Room, open and start syncing.
And now comes the fun part: if you open a tiddler for editing that is open by another peer, you will see the peer’s cursor highlighted, see its UserName, and see what it types and you can type simultaneously. The changes made reflect to all peers editing that same tiddler.
You can even add a tag, add a field, change tiddler type, it all propagates to the peers.
With the “Codemirror 6 SimpleEngine” plugin installed you’ll see also live updates of tiddler title and all other fields of the tiddler, other than the text field.
The most important thing is to not take this too seriously for now, it’s in experimental state.
My tests however show that it has great potential and that it’s working really well.
I’d be happy if you’d like to join a collab session, I did remove the tiddlydesktop-rs-commands plugin and functionality entirely, so no shell commands can be triggered anymore, that was my biggest security concern: shell commands triggered by startup actions on remote computers. Now absolutely impossible.
If you are interested in trying this or have questions, just let me know!
Simon
