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.
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].
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.
[1] https://github.com/firebase/firepad
[2] http://plnkr.co/edit/?p=streamer&s=TogetherJS (Demo)
[3] https://github.com/substack/stream-handbook#introduction
Still, ignoring persistence I think will help keep the surface area of the TogetherJS smaller compared to some other tools. Or at least focused on other things.
People have mentioned the idea of being able to chop TogetherJS up before, but I have a hard time seeing how that would actually work. For instance, the architecture is built around a pretty dumb server, so hooking into Streams would seem counter to that principle. And just allowing for the possibility would add a lot of complexity. Ultimately the UI is actually the bulk of what makes up the TogetherJS code (or maybe it's the part I find hard and so I feel like I spend a lot of time with it), and I don't know how to make this kind of UI while being modular. Without the UI I don't think it's nearly as compelling a project (becomes more like ShareJS, or Firebase, or Google Drive Realtime API – neat but a big investment, and sometimes only appropriate for greenfield projects.
Anyway, I'm certainly interested in how people want to extend or integrate with TogetherJS. I'm skeptical of splitting it up into pieces, as it is theoretically easier to do things that way, but I expect in practice it will just leave a confusing pile of pieces that aren't fun to put back together. But that doesn't mean that there aren't use cases worth exploring... and with some creativity there might be other approaches to handling those cases.
I'm fairly sure the Firebase requires a server too... (their server, or else they couldn't charge for it).
So, like a collaborative Markdown document editor, as well as a simple way to store those documents and choose them for reading/editing later.
In the absence of an html index, the plunker preview server will try transpiling to html from different languages. Markdown is currently supported.
Also transpiled are things like less, scss, coffee-script and more. Essentially, your html requests a file with the target suffix (e.g.: .css) and the preview server will search for compatible source files to transpile to that target.
If this was from a startup I would expect a free trial and then a pricing page that told me what happened if I had X # of users or Y # of requests, but without that info, it seems there is a lot of missing information. Does Mozilla just plan to keep it hosted indefinitely? Or how do you plan to handle users of different sizes? Our use case now is small, but in choosing to go with this tool (vs. Firebase or something else), the switching costs down the road are relevant.
I'm planning to try it out in a small test either way, I'm just curious about more details on the mozilla-hosted version.
It's still a long way off from supporting this type of web page (e.g. dragging does not work, and would love to submit a PR if I only had the time to dig in more); but the almost-instant success with it was impressive. Good work Mozilla.
[1] http://www.k2.com/displaycontent.aspx?id=5502 / http://www.formsondata.com/
wonder if they might to add some kind of drawing/annotation tools
Sorry to blow my own horn, but a few months ago we launched a similar project called Quolony https://quolony.com (we are a small startup from Salamanca, Spain). Right now we are working as a free service and we plan to publish it as open-source in the next few months. People can use it individually using a browser extension or in whole sites including our library. We have avatars, synchronized text selection, private and public chats, persistence, cobrowsing, file transfers and a lot more.
Some samples: https://quolony.com/demos/photomess/ (drag and drop) https://quolony.com/demos/quolony/developers/ (shared demo)
At the low level, we extend the browser event model to make it easier to use it in existing applications.
I hope you guys can give it a try and tell me what you think.
Kudos mozilla!
[EDITED: fixed linked]
exception 'Q\Exception' with message 'Invalid auth provider' in /data/quolony/1.1.beta.1785/code/lib/Quolony/q.core.php:2444
Stack trace:
#0 [internal function]: Q\{closure}(Object(Q\Exception))
#1 {main}So, I assume this does too, but I haven't seen where I could install it on my server.
That's exactly what I was looking for - Thanks! It looks like they still have some documentation to fill out, but at least it's coming.
I'm working on something similar: https://wikidocs.com. Although our's closed source at the moment (can't say whether or not it will remain closed), we will provide a downloadable package you can run yourself.
Pretty interesting that it maps reactive UI elements like bootstrap divs which resize properly!
<a href="javascript:( function(){ var%20s=document.createElement('script'); s.setAttribute('src','https://togetherjs.com/togetherjs-min.js'); document.getElementsByTagName('body')[0].appendChild(s); setTimeout(function(){ TogetherJS(this); }, 100); })();">LINK</a>
edit: so, it doesn't handle iframes. Bookmarklets work but are buggy.