You’ve probably heard the term “offline first”, but don’t really get why your business needs it. Let’s look beyond the traditional reasons offline applications have been developed for.

No Internet

Everyone wants to access their content immediately. Our expectations are so high that when we don’t experience it we become annoyed.

Your application’s size might be small and it will load fast when you’re at the office sitting behind insanely fast connection. It even loads relatively fast on a 3G cellular network.

This isn’t the real world. Sometimes network says it’s fast, but it’s painfully slow when you’re traveling or riding a subway. It’s easy for developers to forget that the environment they develop the application does not necessarily match the conditions of actual users.

Most of the world is still slow. Many users will have to stare at a blank white screen for 10-15 seconds waiting to browse your product catalogue, but they can’t and will abandon the attempt to access your content. They will move on and you will lose their valuable business.

One might make a case that your application is being cached. Therefore offline support is not needed. A healthy business deploys a new version once a day. If that’s the case then in reality your assets are not being cached. When your user comes back the next day and there’s a new version out which has to be downloaded again, delaying your applications load time.

It would be great to skip the downloading part for second visits and handle updates in the background. Offline first approach makes first meaningful paint time considerably faster for returning visitors. In other words users can start engaging with your content faster.

Technologies to do it exist today and are supported by most modern browsers. On Android your application will be treated as a first class citizen if it meets the requirements for a Progressive Web Application.

A good first step is to start small. It doesn’t have to include all the functionality. Make it functional when there’s no connectivity. Even if it just displays a custom offline message - it’s still a start.