๐Ÿ“ข Collaborative document editing over nostr: Proof-of-concept

@naddr1qqhyxmmvd3skymmjv96xjmmw94hkut2wdaehgu3d2pex7mmx94hkvttrdahxxetswskh5df5v9exzqgdwaehxw309ahx7uewd3hkcq3ql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqxpqqqzzmk8q5num

So today I called nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc and we were talking about collaboratively editing documents on nostr; I had this very left-side of the curve idea on how to do this, so after kids' bedtime I implemented it to see what it would feel like.

How it works:

A user can invite other users to edit a document (i.e. a long-form, or any other kind of document)

* The invitees can be added/removed at will by the owner of the document.

* The users send ephemeral events while live editing and can hit "save" to propose a new version of the document.

* Everybody sees what the others are doing in real time

* The document's owner chooses which version to make "official".

* Documents can be forked so any of the invitees (or anybody else if the document is allowed to be public) can fork the document and continue working on their own version.

https://flare.pub/w/naddr1qqhyxmmvd3skymmjv96xjmmw94hkut2wdaehgu3d2pex7mmx94hkvttrdahxxetswskh5df5v9exzqgdwaehxw309ahx7uewd3hkcq3ql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqxpqqqzzmk8q5num

Reply to this note

Please Login to reply.

Discussion

Would webrtc data channels be a better live mechanism?

yup, the live thing was just a silly test, but the proposals for the updated versions are an interesting path

HAHAHHAHAHAHAHHAHAAA

THAT SHOW IS ๐Ÿ”ฅ AND THIS MEME IS TOO GOOD

๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚ Dead

hahahah exactly

๐Ÿ‘€

nostr:npub16wy27uj48r82gskq48uvxku8076h0y9xcngsgry7j4yn6zxmnznqu4hy6a just what youโ€™ve been looking for! ๐Ÿ‘€

This is useful

FOSS is awesome!

๐Ÿ˜‚๐Ÿคฃ๐Ÿคฃ the 80IQ version works surprisingly well!!

Let me never doubt the speed of relays and websockets again.

This looks epic, and you automatically get a changelog and could rewind-restore, genius! Curious about merge-conflicts tho. One idea could be to integrate this into something like Obsidian as a plugin. it's all markdown anyway...

This would be really, really cool to integrate in Drupal or any other CMS.

Are ephemeral events not stored by relays?

some do, some don't; some store them for five minutes.

This uses ephemeral events for the "unsaved" version and when you hit save it creates a more permanent event.

Thank you! Been trying to find info related to them. Didnโ€™t known if it was up to the relay implementation or a standard.

another great piece of work from nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft ๐Ÿ”ฅ

I've had this idea for a few months, and as the first step registered a great domain name for it a couple of months ago! haha! I think I need to back to the drawing board! ๐Ÿ˜

I've been trying without success to get nostr-crdt to sync/share documents related to machine learning model updates. I'm calling them "classifiers". I'm not sure how the ui will work for access control, so I'll be paying attention. https://github.com/colealbon/cafe-society.news/blob/main/src/defaultClassifiers.ts