offline first
Offline first is an approach to software development in which developers build an application’s core features to function with or without an internet connection. With an offline first approach, data is written locally on the end user’s device and periodically uploaded and replicated in the cloud.
An important goal of the offline first strategy is to provide end users with a consistent user experience (UX) when internet connectivity is slow or non-existent. The architecture pushes data and application logic to the network edge and most of the processing takes place on the end user’s device.
This approach not only ensures the application’s core functionality will still work in the absence of a reliable network connection, but it also provides mobile users with a more efficient use of battery resources and bandwidth. This is especially important for end users who travel and experience internet coverage blind spots.
Offline first is sometimes compared to mobile first, a software development strategy in which applications are designed for mobile users with small screens and then progressively enhanced for users with larger screen sizes. Both strategies encourage developers to build applications for the most resource-constrained environments first.
Document databases built with minimal connection resources in mind have advanced syncing and replication capabilities that dramatically reduce the difficulty and cost of building and maintaining applications that sync data between a client and a central cloud data store. For example, an application can use PouchDB, the in-browser version of Apache CouchDB, to function when there’s no internet connection and CouchDB to sync data once a connection becomes available.
Software vendors are promoting offline first because it allows employees who work in developing countries to use productivity and business applications in a more seamless manner. It also allows vendors of all types to grow their digital customer base in previously unexplored areas of the world.