Local-first: experiments & lessons learned building TypeCell
summary
TypeCell is a Notion-like, live-programming knowledge base built on Yjs that uses a reactive UI and lazy-loaded Yjs documents; SyncedStore bridges Yjs to MobX/React and Vue so UI components auto-update without manual observers. Experiments send CRDT updates over Matrix and Nostr via Matrix-CRDT and Nostr-CRDT (worked but hit encryption and permission limits). Current backend moves to Supabase/Postgres with HocusPocus for sockets to support cascading permissions, cross-document refs, search, and practical background-sync tradeoffs.
AI-written summary · about
chapters (19)
- 0:00TypeCell introduction
- 1:24Design principles
- 2:54Live demo
- 4:21Yjs resource architecture
- 7:09Lazy loading & offline sync
- 9:25Local-first architecture
- 10:28SynStore for Yjs
- 12:13View layer reduction
- 13:39Sync layer challenges
- 14:00Matrix backend experiments
- 16:31Decentralized backend limits
- 17:32Supabase for permissions
- 18:36Cross-document operations
- 19:39Conclusion & productivity
- 21:47Q&A: Lazy loading
- 23:57Q&A: Access control
- 25:20Q&A: Sync mechanics
- 27:50Q&A: Sync framework
- 29:13Q&A: Background sync
related talks
01h 01mArchitecture Decisions: A Case Study -
47mThe Meaning of LIVE
01h 19mKeynote: I Can Write the Code But Getting Something Done Is Another Matter
01h 42mBuilding Marvelous and Heroic Systems from the Ground Up
43mEvident Code, at Scale
24mIt's Time To Rethink Everything
22mArchitecture First: Foundations for Long Term Success
28mWhat You See Is What It Does: A Structural Pattern for Legible Software
