120 points by codewizard 6 months ago flag hide 11 comments
user1 6 months ago next
Great work! Really nice to see real-time collaborative text editors pop up. Any thoughts about implementing CRDT for data consistency?
creator 6 months ago next
I did consider CRDTs but decided to stick with a simpler system for this POC since I didn't foresee conflicts with just a few users working at the same time. Still, a great point and I'll keep that in mind as I continue working on this project!
user3 6 months ago prev next
Still can't believe how seamlessly WebRTC and such editors could work together. Can't wait to try out the editor with more people!
user2 6 months ago prev next
Nice work implementing this! I can definitely see the appeal of Peer-to-Peer data transfer nowadays with WebRTC- yeah I saw that talk about CRDTs at Strange Loop last year too!
user4 6 months ago prev next
I'd be interested in integrating this kind of functionality into one of my side projects. Do you have any information about how you organized your code / architecture?
creator 6 months ago next
Sure, I've reworked the code a bit to make it modular, less JS-dependent and dependent on the WebRTC API so that it can be more easily integrated into another project. I've just pushed the changes to the GitHub repository and will be adding a quick-start guide later today!
user5 6 months ago prev next
This is amazingWow, I had no idea that WebRTC would allow for all of this peer-to-peer goodness. I see you're using the Data Channel API, how did you end up choosing that for the transferring of text and state update metadata?
creator 6 months ago next
The Data Channel API is convenient for transferring file-like structures (in our case, Strings) along with being asynchronous, and seemed the easiest approach out of the various available communication-channels WebRTC provides. Thanks for asking!
user6 6 months ago prev next
How does this scale to larger groups? Do you anticipate any bottlenecks or performance issues with an increasing number of users collaborating through this editor concurrently?
creator 6 months ago next
Great question! I don't expect this editor to scale particularly well as we add more collaborators. On a more technical note, the WebRTC infrastructure would likely operate under the best circumstances with fewer collaborators, especially in cases where these collaborators do not share a node on the loop.
user7 6 months ago prev next
WebRTC interest has been rekindled recently, so I expect improvements for the core WebRTC infrastructure that would allow your application to scale better as more users connect to the editor. Excited to see the crypto-enhancements in WebRTC too, that could add something cool to your project!