Skip to content


Local-first software: Collaborating without depending on servers

A talk at emergenCITY “Software and Resilience” Workshop, Online, 14 Jun 2021

Abstract

Cloud-hosted software services and web apps have become crucial machinery for the functioning of companies, governments, and society, making it easier to communicate, collaborate, and coordinate our actions. However, this type of software depends on a server infrastructure that processes requests from clients and stores the data in a central database. The datacenter where these servers are hosted is often far away from the clients that depend on it.

If the clients can’t reach the servers, cloud software stops working. In a disaster scenario, we cannot assume that every device has a working internet connection through which it can communicate with a remote cloud service. Instead, devices that are physically close to each other can use local radio links such as mesh networks to communicate.

However, most collaboration software today is built on top of the assumption that there is one central database, and all communication is routed through it. This assumption is no longer true when we allow nearby devices to communicate directly, without going via any server.

This talk will introduce our research on algorithms for collaboration software that works via any type of network, without assuming any servers. We call this type of software “local-first”, since it prioritises local networks and local storage over cloud computing resources. We will also discuss Automerge, an open source library of Conflict-free Replicated Data Types (CRDTs) that can be used to create local-first software.