Dieter Petereit April 18th, 2013

Mozilla Labs TowTruck: Brand-new Real-Time Collaboration Tool Tested

Mozilla Labs achieves amazing things. And this is more of an under- than an overstatement. The latest sprout from Mozilla's garden, interestingly named TowTruck, makes no exception and promises a lot. TowTruck lets you integrate collaboration features into any website with a mere two lines of code. Once done, people can communicate, collaborate, create together right inside any website. They can even talk to each other via WebRTC. Noupe took a closer look...

TowTruck: Who you call when you get stuck!

If the name puzzles you, you need to know that TowTruck originally got invented as a means of support for budding web developers, hence the spoonerism "Towtruck - who you call when you got stuck". Lets start with a little theory. TowTruck, created by Mozilla Labs staff, is a JavaScript based solution built upon HTML5. The tool provides a separate UI on random websites, adding the possibility for two participants to communicate in real time while surfing the same site. In addition to a control panel the cursors of the corresponding collaborator is shown on the screen of the second partner, so one can always see, where the other user points at. Not only the cursor is shown, but the keyboard is integrated as well, making it possible to work together on one and the same text. Besides that, TowTruck offers a text chat, which functions exactly like the dozen other chats, be it Skype, ICQ, Facebook whatever, you regularly use. There is one difference, though. TowTruck needs no plugins whatsoever and does not only function inside one service. Using a browser capable of WebRTC you can even have real-time voice conversations with your fellow collaborator. WebRTC is supported in recent versions of Chrome and Firefox Nightlies. Integration is totally simple. First, we embed the script:
Having done that, we can now integrate a button anywhere in our document. Clicking the button initiates the TowTruck process:
That's about it. The website is enabled. TowTruck got initialized and sits there waiting for employment. Doesn't that sound too good to be true? We all know that not all that glitters is gold, and tech promises are a dime a dozen. Tech magazines tend to pinch and scrimp. Foremost, sadly, research gets dumped. Rewriting press releases or other peoples' blog posts is easier and produces more content quicker. I just had to make this experience again after I bought an app that got recommended in one of these trendy tech magazines. As soon as I started the app, I knew that the author had not undertaken the burden of actually trying out the app by himself. Had he done it, his article would not have ended with a recommendation. And I would have saved some dimes... So, freshly filled up with this impression I decided not to simply believe the promise of TowTruck's features, just because it got written. As I use Firefox Nightlies as well as Chrome and am able to test on three different operating systems, I felt predestined for proper testing. What I am going to describe now is reduced to the process of communicating between two Chromes, one run on Windows 8 and one run on Mac OS Snow Leopard. I did check more combinations, though. I can assure you that the communication runs just as smoothly using two Firefoxes or even mixing a Firefox with a Chrome. The only thing I could not get working was an audio chat between a Firefox and a Chrome. The rest of the feature set worked flawlessly.

TowTruck: Surprisingly easy? I approve!

TowTruck claims to make it "surprisingly easy to collaborate in real-time". And I can confirm that I actually felt exactly the same. I was surprised how easy the whole process turned out to be. I did not integrate the script into my own website, instead I used the demo page at Mozilla Labs. You might hold that against me, but as the integration of two lines of code does not bear too many risks I assume that we don't need to cast a doubt on that part of the process. On the demo page click on Start TowTruck. The interface opens to the lower right side of the browser window, while a popup opens centered, offering you to watch a screencast first. towtruck-start A click on Use TowTruck opens a modal window named Settings, where we add a random nickname and find the link, which we will want to copy and paste into a mail, which we will be sending to our intended collaborator: towtruck-settings The recipient of our mail clicks on the link contained and is taken to this screen: towtruck-join-session He confirms Yes, join Session and is then immediately able to show signs of life on your screen. Mine sent a friendly So bin da (en: Finally here) as you can see in the following screenshot. towtruck-binda From now on, collaborators can chat via text, can point their respective cursors around, can explain features or problems, can help each other through complicated forms, can edit texts simultaneously, basically anything virtual two people could do while surfing the same site. Possibilities are not exactly endless, but still numerous. Personally, I got most impressed with the voice chat functionality via WebRTC. Communication was two-way and did not show any lags or other weaknesses, even though the distance between the two collaborators was more than 6,000 miles. It felt like chatting in one of those noisier cafés. We encountered only one problem with the voice chat. We couldn't properly turn it off. The red handset icon, that's supposed to end the session after having been clicked, did not do so reliably. The one who clicked the icon first was still audible afterwards, yet could not hear his collaborator. The error worked both ways. We had to close the browser tabs to really and effectively end the session. This is not a complaint, though. TowTruck is Alpha software and as such needs to be buggy to justify its status. I did not test mobile browsers. Yet, I am not alone with that. The developers themselves admit that they did not do much testing on mobile devices. Principally any browser with support for WebSockets should be suitable for the whole feature-set, except for voice chat. Will TowTruck be the breakthrough for real-time online collaboration? I would say the potential is there. It is not the idea, that is so new - as it actually isn't. It is more the ease of use and the simplicity when it comes to the integration process. You can basically turn it on for any website out there. As developer Ian Bicking put it in his blog post:
Developing TowTruck has been exciting because it feels like the web was built for this kind of tool.
The following screencast provides a little visual insight: TowTruck is developed by Ian Bicking, Simon Wex and Aaron Druck. TowTruck is Open Source and available on Github. Get going!

Related Links

Dieter Petereit

Dieter Petereit is a veteran of the web with over 25 years of experience in the world of IT. As soon as Netscape became available he started to do what already at that time was called web design and has carried on ever since. Two decades ago he started writing for several online publications, some well, some lesser known. You can meet him over on Google+.


  1. UI looks pretty cool, wonder if they are using jquery UI. Authentication might be an issue in a pure js app (unless JSON calls can be made to a DB server).

  2. Pingback: Flat, Mobile, Responsive: Fresh JavaScripts and jQuery Plugins Made in September 2013 - noupe

Leave a Reply

Your email address will not be published. Required fields are marked *