Mozilla Labs: TogetherJS
This is a really cool and ambitious project. Although some mention ShareJS, I would say that the OT portion more closely resembles that employed by Firebase in their Firepad project [1] (in that no centralized server manages ordering and history). Actually, this system has many of the features of Firebase in a self-hosted package.<p>As a user of ShareJS (for the real-time collaboration on Plunker [2]), I can see some interesting benefits offered by TogetherJS; the system has cursor and presence features out of the box.<p>That being said, the main drawback that I see in TogetherJS is that it seems to be tightly coupled in a way that it is hard to take smaller parts of the overall system.  It would be great if the P2P network system could be extracted and plugged into a node.js Stream interface. That would allow the code to plug into a whole ecosystem of interesting libraries [3].<p>I'm really excited by all the powerful libraries that Mozilla has been pumping out these days. The web is a great place to be.<p>[1] <a href="https://github.com/firebase/firepad" rel="nofollow">https://github.com/firebase/firepad</a><p>[2] <a href="http://plnkr.co/edit/?p=streamer&s=TogetherJS" rel="nofollow">http://plnkr.co/edit/?p=streamer&s=TogetherJS</a> (Demo)<p>[3] <a href="https://github.com/substack/stream-handbook#introduction" rel="nofollow">https://github.com/substack/stream-handbook#introduction</a>