Daten zum Projekt

Local-first software: Resilient and secure collaboration.

Initiative: Freigeist-Fellowships
Ausschreibung: Freigeist Kollegium
Bewilligung: 12.04.2022
Laufzeit: 5 Jahre


Computers are one of the most important creative tools humanity has ever produced: be it writing a research paper, composing a film score, or negotiating a contract - at some point, everything is a file on a computer, and most files require input from several collaborators. The current trend for collaboration is to use cloud software such as Google Docs, which is very convenient because it allows several people to contribute to a document without having to email it back and forth. But it comes with a severe risk: if you are locked out of your account, you lose access to all files you ever created in Google Docs. The same is true of all cloud software, which ceases to work if the cloud service is shut down. This fellowship will lay the technical foundations for "local-first" software, a new generation of collaboration software. Real-time collaboration in local-first software works just like in cloud software, but it also stores the files on your own computer. Even if your account is locked or the service shuts down, nobody can take these files away from you. Local-first techniques will also make it easier and cheaper to create high-quality collaboration software. However, realising local-first software is challenging because the cloud-centric programming model is deeply engrained in today's programming tools for web-based software; overcoming this dependency on the cloud requires new algorithms, protocols, and software tools. This fellowship builds on the concept of Conflict-free Replicated Data Types (CRDTs) and aims to make local-first software viable in practice by improving its performance, scalability, functionality, security, and usability. It brings together several distinct fields of computer science, in particular distributed systems, databases, security protocols, programming languages, formal verification, and human-computer interaction.