Revision 676: Local First
Elf Jahre (und 501 Revisionen) nach seinem letzten Besuch in Revision 175 war Jan Lehnardt (LinkedIn / Mastodon / Bluesky) wieder bei uns zu Gast. Mit Schepp und Vanessa spricht er über die Idee hinter „Local First“.
Schaunotizen
- [00:01:09] Local First
- Was heißt eigentlich „Local First“? Wir starten mit einer Rückblende auf das Jahr 2013: Damals war „Offline First“ das neue heiße Ding – erdacht von Jan höchstselbst und in Worte gegossen von Jans Mitstreiter Alex Feyerke im A List Apart Essay. Aus seiner Arbeit an CouchDB und PouchDB heraus entstand der Gedanke, dass Applikationen auch ohne Verbindung zum Internet sinnvoll funktionieren sollten. Dabei nutzt man ein System verteilter Datenbanken, sei es im Internet, im Intranet oder auf dem Anwendergerät selbst zwischen denen Daten in Form von Dokumenten synchronisiert werden. Ähnlich wie es mit Git möglich ist. Anders als bei Git, treten Merge-Konflikte allerdings schon dann auf, wenn gleichzeitig dasselbe Dokument verändert wurde. Diese Konflikte gilt es dann manuel zu lösen.
Wir sprechen über spannende Anwendungsfälle, die der „Offline First“-Ansatz überhaupt erst möglich gemacht hat – von Ebola-Krisenhilfe über die COVID-Impf-Infrastruktur in Bayern bis hin zur Koordination und Planung humanitärer Konvois in Krisengebieten.
„Local First“ setzt im Grunde auf ähnliche Prinzipien wie einige Jahre zuvor „Offline First“, wie es auch die sieben Prinzipien von „Local First“ dokumentieren. Technisch ist „Local First“ allerdings etwas anspruchsvoller, weil es stärker darauf ausgerichtet ist, dass Nutzende an ein und demselben Dokument gleichzeitig arbeiten können. Realisiert wird das über Conflict-free Replicated Data Types (CRDT).
y.js, JSON CRDTs, Operational Transforms (wie einst bei Google Wave) und Automerge sind Werkzeuge, die einem hier feingranulare Synchronisation und Konfliktlösungen ermöglichen. Jan erklärt, dass auch CouchDB mittlerweile gelernt hat, Konflikte automatisch zu lösen und es damit auch besser für gleichzeitige Arbeiten am selben Dokument gerüstet ist.
Links
- Jans letzter Besuch (Revision 175)
- 2014 sprachen wir mit Jan über CouchDB, Hoodie und das Web der Zukunft.
- Offline First Essay bei A List Apart
- Alex‘ und Jans Ursprungsidee aus 2013 für resilientere Apps – und der Startpunkt für Local First.
- Das Local-First Essay
- Das Manifest von Ink & Switch, das die Prinzipien für Local First formuliert hat.
- How to Sync Anything
- Ein tiefgehender Artikel über Synchronisationsstrategien und verteilte Datenmodelle.
- Jans Talk bei der Local First Conf
- Einblicke in die Herausforderungen und Fortschritte im Bereich Local First – Stand 2025.
- Cozy Cloud
- Ein Beispiel für eine Local-First Cloud-Infrastruktur.
- Linear
- Ein Tool, das auf lokale Performance setzt – und damit auch UX-Gold gewinnt.
- The UX of Local First (Eileen Wagner)
- Wie sich UX für Local First anfühlen kann – Vortrag von der Local First Conf.
- Heise: Corona-Testdaten öffentlich
- Beispiel für schlechte Sicherheitspraktiken während der Pandemie – was man besser machen muss.
- Martin Kleppmann: Local-First Software (PDF)
- Wissenschaftliche Grundlage hinter dem Local-First-Gedanken.
- Yjs
- Yjs stellt Shared Types zur Verfügung, die wie jeder andere Datentyp manipuliert werden können, sich aber automatisch synchronisieren können.
- Automerge
- Ein Framework für CRDT-basierte Synchronisation ohne zentrale Server.
- CouchDB Konfliktlösung wie Git
- Blogpost von Neighbourhoodie über moderne Konfliktlösungsansätze in CouchDB.
- Tiptap & y.js
- Tiptap-Editor mit y.js für Echtzeit-Kollaboration – ein Praxisbeispiel für Local First Tools.
- LORA Netzwerk
- Low Range Wide Area Network – effizient, energiearm und offlinefähig.
- Sync Conf (Discord)
- Austausch über Synchronisationsstrategien, Technik und Patterns für verteilte Systeme.
- Local First Software (Discord)
- Die Community zum Thema Local First – inkl. Jobbörse und Projektvorstellungen.
- Offline First Slack
- Slack-Community mit über 11.000 Mitgliedern zum Thema Offline- und Local-First-Software.