Offline databases
There is really only one requirement of a good online database: synchronization. If a database solves the problem of making multiple databases eventually consistent, it's probably an option worth considering. There are many choices available: derby.js, Lawnchair, Firebase, remotestorage.io, Sencha Touch, Hoodie, PouchDB, and others.
Some of these are pure databases; others provide end-to-end offline-first development frameworks. For simplicity, we will focus on four: Sencha Touch, PouchDB, remotestorage.io, and Hoodie.
Sencha Touch
We've chosen Sencha Touch to build our offline app. As we saw in Chapter 2, Building a To-do App, Sencha Touch provides support for multiple types of backing stores and makes it trivial to swap between them. Some of these backing stores, such as LocalStorage, are offline-based. In a way, Sencha Touch is less about storing data offline and more about providing an easy interface layer between the frontend and data.
Why isn't LocalStorage sufficient...