Peter van Hardenberg - Ink and Switch, Automerge
Quick Overview
Peter van Hardenberg details the philosophy and technical work of Ink and Switch, an independent industrial research lab focused on "tools for thought," emphasizing that local-first software, powered by synchronization engines like AutoMerge utilizing Conflict-Free Replicated Data Types (CRDTs), is crucial for achieving data ownership, offline capability, and real-time collaboration, contrasting this approach with the inherent limitations of purely cloud-based architectures.
Key Points: Local-first software mandates that software runs on the user's computer, ensuring data ownership so that "if someone can take something away from you, it's not really yours." The motivation for local-first research stemmed from realizing structural problems in cloud architecture, such as losing access to playlists when a phone went offline or services disappearing when Heroku scaled down old apps. Ink and Switch is an independent industrial research lab studying tools for thought, funded by a mix of private individuals, philanthropic contracts (like with the Endless Foundation), and government contracts (like ARIA in the UK). AutoMerge is a local-first sync engine that records every change made, leveraging CRDTs to ensure that merging changes from different users always yields the same result, focusing on high-fidelity history preservation like Git but in real-time. The technical challenge in AutoMerge involved optimizing data representation, moving from a naive byte-per-keystroke recording to a column-encoding format (similar to GIF compression), which reduced overhead to about 38% for text. Ink and Switch prioritizes collaboration on creative work for scientists, journalists, and writers, explicitly noting that CRDTs are not a natural fit for modeling scarcity, such as bank account balances or ticket sales. KeyHive is a project extending local-first principles to authentication, where authorization travels with the data via public keys, allowing servers to pass encrypted data bits to authorized parties without needing to decrypt or centrally control access.