Anselm Eickhoff
I've been building web apps for 15 years, since my teenage years. I've painfully realised that some of the tools and conventions we take for granted make things much more difficult than they feel they "should" be. We spend most of our time doing stuff over and over again that doesn't really feel related to each individual app (persistence, permissions, shared state). But four years ago, I found out about a new abstraction (CRDTs) and a co-discovered a new way of building apps (local-first). Ever since I've been trying to wrap up this alien new tech in a familiar, ergonomic interface.
Local-First: A Crazy New Way to Build Apps
JSNation US 2024
Nov 21, 19:05
Local-First: A Crazy New Way to Build Apps
Local-first is a new way of building apps around local state (that is synced among users and server workers) instead of using traditional APIs and databases.
In this talk we'll have a look at what that looks like with my framework, Jazz (for TypeScript/React). We'll see how writing an app becomes little more than defining a data schema and building some UI.
In this talk we'll have a look at what that looks like with my framework, Jazz (for TypeScript/React). We'll see how writing an app becomes little more than defining a data schema and building some UI.
Jazz: Build Real-Time, Local-First React Apps With Sync & Secure Collaborative DataWatch video: Jazz: Build Real-Time, Local-First React Apps With Sync & Secure Collaborative Data
React Advanced 2023
29 min
Jazz: Build Real-Time, Local-First React Apps With Sync & Secure Collaborative Data
Users have come to expect real-time collaboration from best-in-class apps like Notion or Figma. But widely available tools and infrastructure for building multiplayer apps are only just emerging. In this talk, we’ll explore the open-source framework Jazz and the two new ideas powering it: Conflict-free Replicated Data Types (CRDTs) and verifiable permissions. By building a whole app with nothing but React and Jazz, we’ll see how this new approach radically simplifies building not only real-time multiplayer apps, but any kind of app in which users interact.