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.

Anhören

MP3 herunterladen (82,2 MB) | Transkript