Dealing with Data Offline in Web Apps

Flaky connections are the default for a huge part of the web, especially on mobile. An offline-first app needs more than a Service Worker that caches shell assets — it needs a story for reading and writing data when the network is gone, and for syncing that data when it comes back.
In this talk I walked through Service Workers and the Cache API for URL-addressable resources, IndexedDB (and small Promise wrappers) for everything else, and higher-level options like redux-offline and PouchDB for write-heavy flows. I also covered versioning data, handling concurrent edits, and designing UX for both offline and online modes.
I gave this talk at ReactNext in Tel Aviv, and a related session on handling offline data creation at JSChannel.
Dealing with Data Offline in Web Apps on Speaker Deck
Watch the ReactNext recording:
The JSChannel talk, Handling Offline Data Creation in Web Apps, covers a similar theme from the write path.