BlueLatex: a collaborative Latex editor

by Martin Monperrus

BlueLatex is an open-source real-time collaborative Latex editor. It’s on https://github.com/gnieh/bluelatex.

Goals

BlueLatex helps you and your coauthors to write latex papers:

History

BlueLatex has a long history.

In 2009, I wrote a prototype in written in PHP to explore the ideas of writing Latex code in a browser and automated compilation on the server. When I discovered the real-time collaborative editor Gobby and later, the collaborative editing library mobwrite, I hacked a first prototype of a real-time collaborative Latex editor.

BlueLatex V1 was written in early 2010, the server was in PHP (except for the mobwrite python server) and the generated HTML code used some javascript. There was some AJAX in there, the JS code used the mobwrite JS client and prototype.

BlueLatex V2 was written in 2011, the server was still in PHP but exposed a proto REST-interface. The client code (on the browser) was rewritten in pure Javascrit using YUI. Prototype was out, and in order not to rewrite everything, we simulated Prototype objects and functions using YUI ones! Some AJAX URLs were evolving towards REST, they output JS code and not HTML fragments anymore.

BlueLatex V3 was completely rewritten from scratch in 2012 with my friend Lucas Satabin coming in the project. The architecture was now completely REST (the server never serves a single line of HTML). The server was written in Scala (on top of tiscaf). The V3 client was written in Google GWT. BlueLatex V3, as its predecessors, used the python mobwrite python server and the mobwrite JS client.

BlueLatex V4 was written in 2013. It’s not a complete rewrite but a very significant increment over V3. A third team member joined BlueLatex: Audric. V4 uses OSGI, diffson, couchdb, and contains a new implementation of the mobwrite protocol in Scala.

BlueLatex V5 was written in 2014. The scala code evolved a lot but more importantly, a brand-new client was written by Thomas Durieux. The client now uses AngularJS. Furthermore, BlueLatex V4 now contains its own implementation of the Mobwrite synchronization protocol in Scala.

Notes

BlueLatex has been hosted on publications.li for a long time.

Tagged as: