Local-First in Practice: Learnings of building a high-performance, local-first mus...
summary
Overtone is a high‑performance, local‑first music client built over two years that currently runs locally and aims to add sync; it uses Riffle and puts SQLite in main thread for synchronous queries, trading off thread blocking for near‑zero latency and much simpler code. It hits smooth 60–120 FPS most of the time, handles ~100k tracks (~100MB) comfortably, mitigates frame drops with caching, incremental view maintenance and an app‑level task scheduler, and persists via a background worker.
AI-written summary · about
chapters (14)
- 0:00Local-first music apps intro
- 1:50Why build local-only client
- 3:39Overtone demo 120 FPS
- 5:27Riffle SQLite state
- 8:17Sync APIs for speed
- 10:09Frame budget UI lag
- 11:54Task scheduling for responsiveness
- 13:20Large datasets in SQLite
- 14:26Performance vs efficiency
- 15:09Local-first podcast plans
- 15:50Q&A CRDTs in SQLite
- 16:55Q&A Async vs chunked fun
- 18:41Q&A SQL complexity
- 20:46Summary
related talks
24mGoing Local-First: A Primer
41mThe UI/UX Benefits and Trade-Offs of Local-First Apps
32mNative-Grade Web Apps with Local-First Data
18mRethinking Apps with Local-First Architecture
26mLocal First Svelte
32mLook, Mum, No Internet - Creating great experiences with offline-first apps
21mCRDTs for Mortals
39mSay Hello to Offline First
