~/talk

Local-First in Practice: Learnings of building a high-performance, local-first mus...

Talkat PLF 2023 · 2023-10-22..10-27· [distributed-systems, web-performance]
slides:none on file

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

  1. 0:00Local-first music apps intro
  2. 1:50Why build local-only client
  3. 3:39Overtone demo 120 FPS
  4. 5:27Riffle SQLite state
  5. 8:17Sync APIs for speed
  6. 10:09Frame budget UI lag
  7. 11:54Task scheduling for responsiveness
  8. 13:20Large datasets in SQLite
  9. 14:26Performance vs efficiency
  10. 15:09Local-first podcast plans
  11. 15:50Q&A CRDTs in SQLite
  12. 16:55Q&A Async vs chunked fun
  13. 18:41Q&A SQL complexity
  14. 20:46Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.