$ whoami

  • Firefox OS / Boot2Gecko Developer
  • PouchDB Author
  • CouchDB Contributor
  • OSS + Web Geek
new Pouch('dbname', function(err, db) {
  db.put({_id: 'id', some: 'json'});
  db.allDocs();
  db.remove({_id: 'id'});
  db.replicate.to('http://host.com/mydbinthecloud');
});

Pouch.deleteDatabase('dbname');

Built for JavaScript

<script src="pouchdb.js"></script>
Or
$ npm install pouchdb

CouchDB Invented the first telephone

Designed for building offline applications

  • Applications for Desktop / Web / Mobile / Tablets
  • That need to work well offline
  • That need to sync data

PouchDB wont die

Spurts of development

Before its time

  • WebSQL in flux, IndexedDB only just becoming stable
  • No AppCache, Packaged web apps, Phonegap etc
  • No army of NodeJS developers.

The rise of mobile

Offline is a fact

  • The rise of mobile means people are offline more.
  • No reception, Travelling, Data limits
  • When connections do exist, often slow and unreliable
  • Local data will always be faster

Sync is hard

Everything is broken

Sync is hard - Things

Sync is hard - Why

  • Bad connections / retries
  • Reducing transfer overhead, moving deltas
  • Master Master Scenarios
  • Conflict Resolution

Demo

Current Status

  • 55KB!
  • 735 tests and growing every commit
  • Passing all tests in Firefox, Chrome, Opera and Safari and Node
  • 36 Contributors
  • Stanford Open Source Course
  • Release Imminent

The Future

  • GQL Queries - Various CouchDB Experiments
  •     User
          .filter("name =", "Smith")
          .filter("age =", 32)
          .order("amount_paid")

The Future

  • Local PouchDB Server
  • One Stop Sync
  • Projects and Tools - Puton
  • Interaction with various CouchDB ecosystem - TouchDB

Thank You!

Questions?


pouchdb.com

github.com/daleharvey/pouchdb

@pouchdb - @daleharvey