Comparison
Offline-firstvsService worker
Offline-first
the app opened and worked on a train with no signal, then synced when the connection came back.
Treating the network as an enhancement: reads come from local storage and writes queue until they can be sent. It is genuinely valuable for field and mobile use and it drags in a distributed systems problem — conflicting edits, ordering, and what to show when a queued write is finally rejected. Most implementations get the caching right and the conflict resolution wrong.
Full entry →Service worker
a script you are not running sits between the page and the network and answers requests itself.
A worker registered against a scope that intercepts network requests for pages under it, enabling offline support, custom caching and push. It has no DOM access, runs on its own lifecycle, and keeps controlling pages until every tab is closed — which is why a bad one is genuinely hard to remove from the field. Shipping one means owning an update strategy before the first release, not after.
Full entry →