Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Creating local-first collaboration software with Automerge

Creating local-first collaboration software with Automerge

Slides from a talk given at GOTO Amsterdam, 29 June 2023


Many of us use collaboration software such as Google Docs, Overleaf, Figma, or Trello every day. While this cloud software is very valuable, it is also fragile: if the company providing it goes out of business, or decides to suspend your account, the software stops working, and you are locked out of all of the documents and data you ever created with that software.

Local-first software is an effort to make collaboration software less dependent on cloud services, and Automerge is an open-source library for realising local-first software. Automerge uses Conflict-free Replicated Data Types (CRDTs) to allow several users to concurrently update a file, and it automatically merges those updates into a consistent result. It provides data formats for efficiently storing this data and syncing it between users. It seamlessly supports both offline work and live real-time collaboration while users are online.

This talk will introduce our recent research on CRDTs, and provide an update on the latest developments in Automerge.

Martin Kleppmann

June 29, 2023

More Decks by Martin Kleppmann

Other Decks in Technology


  1. 56

  2. 57

  3. 58

  4. Resources Automerge https://automerge.org/ My work https://martin.kleppmann.com/ Email [email protected] Twitter @martinkl

    Bluesky @martinkl.com Mastodon @[email protected] Huge thanks to the Automerge community and contributors, especially Alex Good, Peter van Hardenberg, Orion Henry, Andrew Jeffery, Herb Caudill, Alex Currie-Clark, Jason Kankiewicz, Conrad Irwin, and many others! Thank you to my Patreon supporters and institutional funders:
  5. Automerge compression benchmark Benchmark data: keystroke-by-keystroke editing trace of a

    text file (LaTeX source of a research paper) containing 182,315 single-character insertions and 77,463 single- character deletions, timestamped with 1-second granularity. As individual changes: 33.7 MB (130 bytes/operation) As compressed document with full edit history: 184 kB (0.7 bytes/operation) 0 20 40 60 80 100 120 140 160 180 200 uncompressed, no CRDT CRDT without history CRDT with full history File size [kB] Breakdown of compressed columnar file contents text content char IDs deletion info timestamps