How we developed an Offline‑First app using Persistent Storage
summary
A team built an Offline‑First web app with native‑level features by replacing a C++ core with JavaScript to allow offline PDF signing and annotation and to queue changes for later sync. They use IndexedDB for persistent storage, moved to Lovefield (an SQL engine on top of IndexedDB) for querying, employ Web Workers with ArrayBuffer transfer for cryptography and large file I/O, and use service workers for static assets, while addressing storage quota probing, eviction, private‑mode limits and data migration across browsers.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:50Early app issues
- 3:15Offline app goals
- 4:40Static caching
- 5:44Reliable data storage
- 7:28IndexedDB in browser
- 9:12IndexedDB low-level issues
- 9:55Dexie.js for data
- 13:48Data architecture
- 14:57Data transfer in Web Workers
- 16:45Files in IndexedDB
- 17:57Web Workers pros/cons
- 20:03Browser storage limits
- 21:50Persistent Storage features
- 23:11Server data sync
- 24:58Online/offline detection
- 25:59Future of IndexedDB
- 27:45PWA installation
- 28:48Offline architecture tips
- 31:37Large change queues
- 33:05Mobile app install
- 35:13Offline server sync
- 36:58Firefox support
- 37:38Legacy browser support
related talks
45mOffline First (Web) Apps
41mIntroduction to Offline First Web Applications
30mOffline First: Making Your App Awesome When the Network Isn't
29mGive Apps Online Superpowers by Optimizing them for Offline
22mSurviving the Offline Apocalypse
32mLook, Mum, No Internet - Creating great experiences with offline-first apps
32mOnConnectionLost - The Life of an Offline Web Application
39mSay Hello to Offline First
