Offline Support
When installing, the Service Worker caches all of the static assets the app needs to run, so that once it is activated the app can be used offline.
We also provide a client database and asynchronous push messaging, to ensure eventual consistency between the client and the server.