Offline First!


The history of computers is telling us a story of a slow change from thin clients of '60s and '70s to fat clients of '80s and '90s, back to thin clients of the web age we are living in at the moment. With the increasing power of web clients and proliferation of mobile applications the pendulum seems to be shifting to fat clients once more. If you're serious in believing that shift to fat clients is indeed happening again (as I am) it's time to start behaving according to our belief. Just like with the shift to mobile, the right approach is to go offline first thus forcing ourselves to stop relying on the server and have clients do most of their work by themselves and in isolation, and only later add on-line functionality. And there are finally tools and technologies popping up to help you starting such as localStorage, IndexedDB, localForage, AppCache, and

As explained by Caolan McMahon, one of the authors of at his QCon talk, to go offline first is a great complement to mobile first approach. Not only it solves the issues with non-ubiqutious connectivity (that seem far from being a solved problem even in the developed world), but it provides for much better user experience on mobile devices by reducing lag in access to information and improving responsiveness of applications.