Local-First Data Management

Project

Local-First software aims to combine the benefits of modern cloud software (collaboration, multi-device sync) with the benefits of "plain old" local applications (data privacy/ownership, offline availability).

An example of this application model is the git version control system: Every device has its own copy of the application data and can modify this freely and without a network connection. At the same time, users can collaborate with others by merging their updates into the local copy of the data.

While local-first software offers several desirable properties, it can significantly complicate program design when compared to classic client/server cloud applications, because programmers now have to reason about a highly-concurrent system without a "single source of truth".

Goal

In this project, you will pick one of the following challenges and try to implement a prototype that explores possible solutions.

Starting Points