
Local-First Conf 2025
Talks, Day 1
The first day of talks is on Tuesday, May 27. The venue is nHow Berlin located at Stralauer Allee 3, 10245 Berlin.
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
Venue opens (coffee, snacks)
Welcome by MC
Playbit sync Rasmus Andersson
General-purpose sync with IVM Aaron Boodman
Sync different: Event sourcing in local-first apps Johannes Schickling
Collaborative text editing without CRDTs or OT Matthew Weidner
How Local First is accidentally perfect for the AI age Anselm Eickhoff
Lunch
Learn just enough about Chrome built-in AI to be productive Thomas Steiner
Building a synchronous experience with asynchronous data: Linear's sync engine Tuomas Artman
CRDTs as a temporal data structure Paul Butler
The big questions of Local First Adam Wiggins
Break (drinks, snacks)
Building a Yjs sync provider using Cloudflare Workers Timo Wilhelm
Introducing TanStack DB James Arthur
Safe in the Keyhive: Local-first access control with E2EE and capabilities Brooklyn Zelenka
Beelay, a (reasonably) generic encrypted sync protocol for CRDTs Alex Good
Sync engine's best friend: fine-grained rendering Dev Agrawal
Wrap up
How Local First is accidentally perfect for the AI age
May 27 12:00 - 12:15
When we set out to make local-first mainstream with Jazz, the two ideas that excited us the most were: a much simpler stack (no backend, nothing to integrate) — and: a much more declarative approach to writing apps (just a schema, plus UI).
Turns out that these make local-first perfectly suited for vibe-coding. In particular, we'll also show you how that's influenced our API design and how Jazz's unique local-first permissions might be the missing piece to make vibe-coded apps secure and production-ready with no extra work.