You are offline

The agenda for this year is the source of truth for Codemotion 2017. It displays up-to-the-minute information, supports filtering by technology and free text, collects feedback about the speakers and favorite talks that you want to attend. Starting this week, the agenda will also work while offline. Well, most of it.

There are many new features available when adding a ServiceWorker to a web page:

Performance gets better in general. All resources from the page (JS, CSS, HTML) are stored in the browser cache and retrieved from there without even going to the Internet. This also applies to JSON requests, which in our case are always retrieved from the Internet (network first) to use the latest version, using the cached value if connectivity is not there. You can check out our implementation for more details.

Instant app: When accessing from your mobile device on Android, the device should display a message about the instant app being available. You can also add a link on your desktop.

Great browser support (well, getting there). A browser support comparison matrix is available here, which at the time of this writing means present in Firefox, Safari and Chrome, and being implemented in Edge.

Offline support. Voting, favorites, and feedback will be disabled while offline (for now) but the rest of the agenda should work while offline.

Where is the catch? Well, for starters it is easy to get something wrong, and bugs can end up with the agenda displaying outdated information or, worse, not displaying anything at all. These errors are often silent, and refreshing the browser will not help. Risky stuff.

For this, we need your help. We have tested this (like, a lot) but anything weird that you find would be useful feedback. New data not being displayed, errors while accessing content for the first time, avatars missing on screen.

Kudos to workbox for having implemented a fantastic library that makes working with ServiceWorker so much more comfortable, and Jake Archibald for the great ServiceWorker Cookbook. Without them, all this work would have been much harder.