Open Day Presentation
BSc LaTeX Editor a la Overleaf
Student
Desk
Initial task setting
Supervisor
Second Reader

g20-55

Keywords
Collaborative, Realtime, Latex, CRDTs, Editing

Technologies
Yjs, Websockets, Monaco Editor, latexmk, Node.js

This project aims to design and implement a web-based collaborative LaTeX text editor inspired by the functionality of Overleaf. Primarily, its’ objective is to provide users with a free platform where they can create, edit and compile LaTeX documents and projects. Moreover, it seeks o provide selected features locked behind Overleaf’s subscription model for free, making these features including multi-user collaboration more accessible.

The application is a browser-based code editor with backend services that handle project management, user authentication and LaTeX compilation. Real-time collaboration is achieved using Conflict Free Replicated Data Types (CRDTs) through Yjs and a WebSocket-based server. This is done with the aim of providing conflict-free collaboration for multiple users working on a project at once. The app also utilises role-based permissions to allow users to securely share their projects with others and control access as needed.

Overall, the project builds upon existing tools to achieve its functionality, such as Monaco Editor for file editing, Yjs for distributed synchronisation, external tools such as latexmk for compilation and more.