WIP
Reverie is a Progressive Web App for taking notes. Try using the "Add to homescreen" feature on your smartphone!
Reverie uses a Service Worker to cache the assets and app shell, and stores notes in a local pouchDB, which is persisted between sessions. Since even IndexedDB/WebSQL browser data can be cleared, the app can sync notes to a remote CouchDB. The rest of the logic and UI is handled by Ember.
In the future, I plan to add a simple import/export feature, so you can backup your data however you prefer. Adding CouchDB authentication is also in the works.
Many thanks to HospitalRun for a great demonstration of the offline-first concepts.
If you want to learn more about Progressive Webapps, here is an intro by Google.
Finally, there are a few ways of implementing Service Workers in Ember. I went with broccoli-serviceworker, but there might be more powerful tools in the future.
You will need the following things properly installed on your computer.
git clone <repository-url>
this repositorycd reverie
npm install
bower install
For development, you should follow the PouchDB setup
guide.
The remote db is configured in config/environment.js
for each environment.
By default, it is empty for production and /offline
at the default CouchDB
port for development.
For production, you need to set up your own CouchDB deployment (either
self-managed or, say, Cloudant).
You can then simply change the relevant field in config/environment.js
.
Don't forget to add CORS headers!
ember serve
- Visit your app at http://localhost:4200.
Make use of the many generators for code, try ember help generate
for more details
ember test
ember test --server
ember build
(development)ember build --environment production
(production)
Specify what it takes to deploy your app.