top | item 6044892

Show HN: PouchDB - The JavaScript database that syncs

82 points| daleharvey | 12 years ago |pouchdb.com | reply

41 comments

order
[+] edtechdev|12 years ago|reply
Yeah there's a lot of interesting stuff being developed around pouchdb, I've been slowly checking it out the past couple of months:

Some beginning tutorials/intros to pouchdb: http://pouchdb.com/getting-started.html http://briantoth.github.io/Tutorial/2013/03/19/pouchdb-intro... http://mattgwwalker.wordpress.com/2013/04/08/pouchdb-2/

Todo Tutorial using AngularJS and PouchDb http://twilson63.github.io/ngTodoPouch/

Building Offline Applications With AngularJS and PouchDB http://mircozeiss.com/building-offline-applications-with-ang...

Other Apps Using PouchDB https://github.com/daleharvey/pouchdb/wiki/Who-or-What-Is-Us...

including this offline conference app https://github.com/axemclion/conference

PouchVision - inspect and interact w/pouch instances http://brudolph.pouchvision.jit.su/

Puton - bookmarklet for inspecting/editing pouch dbs http://puton.jit.su/

PeerPouch (PouchDB-over-WebRTC) - in development at one point https://github.com/natevw/pouchdb

[+] napoleond|12 years ago|reply
I've been keeping an eye on PouchDB for a while; it looks like a lot of fun. How does authentication with the Couch server work, though? I don't see anything on the FAQ or after a brief perusal. CouchDB's apparently lax attitude toward security years ago was what kept me away, but I've always hoped/assumed that it improved since then. Has it?
[+] daleharvey|12 years ago|reply
CouchDB had some quirks related to user accounts as it has the added burden of trying to be an application server as well as a database server.

With PouchDB a lot of the application server logic doesnt apply and you can use CouchDB as a private data server that requires any connection to be authenticated, in the example we use basic auth but other methods are available and none of the security quirks with 'couchapps' apply.

And yes it is a lot of fun :)

[+] daleharvey|12 years ago|reply
I just put up this website, its ugly but working on the content, in particular I want it very easy to understand wtf it is and get started, would love to hear your feedback.
[+] ollysb|12 years ago|reply
The website is mostly very clear but I wasn't sure what the db on the backend would be, it sounds like it expects to work with couchdb but an adaptor could potentially be made to work with anything server side?
[+] monsterix|12 years ago|reply
I like the name.
[+] vog|12 years ago|reply
The example code is somewhat weird:

  var db = new PouchDB('dbname');
  
  db.put({
    _id: '[email protected]',
    name: 'David',
    age: 66
  });
  
  db.changes({
    onChange: function() {
      console.log('Ch-Ch-Changes');
    }
  });
  
  db.replicate.to('http://example.com/mydb');
Shouldn't you set up the event listener before "db.put()"?
[+] daleharvey|12 years ago|reply
I mostly just wanted to highlight the key features with 'real' code in the order you would come across them, you are right though might be worth switching that, thanks
[+] amitdugar|12 years ago|reply
Is it possible to do something like this for a MySQL (innodb with relational keys) database ? I am about to begin work on a project that might be used in countries where we don't have constant connectivity (internet and electricity) .. and we don't want to lose or corrupt data due to connectivity ...
[+] daleharvey|12 years ago|reply
I mention this in the FAQ

Can PouchDB sync with MySQL / my current non CouchDB database?

No, the data model of your application has a lot of impact on its ability to sync, relational data with the existence of transactions make this harder. It may be possible given some tradeoffs but right now we are focussing on making PouchDB <-> (PouchDB / CouchDB) sync as reliable and easy to use as possible.

[+] abhididdigi|12 years ago|reply
I've been using PouchDB for a month now, and it really is good. Simple, Yet powerful storage.
[+] akrymski|12 years ago|reply
I'm not too familiar with Couch, but as I understand it caches views and updates them. Does Pouch do something similar, or does the query function filter all the documents in the database?
[+] tracker1|12 years ago|reply
I don't understand why they don't shim in using local storage for IE8 and 9?
[+] daleharvey|12 years ago|reply
Somewhere between IE support not being a hugely requested feature and that the limitations and speed of localStorage wouldnt make a very useful database. I think support will likely pop up at some point, it isnt very hard to write a new adapter, but right now I would rather focus on making it work very well in modern browsers.
[+] dschiptsov|12 years ago|reply
a-la Cassandra, but under NodeJS?) I'm Jack's total lack of surprise!))
[+] daleharvey|12 years ago|reply
Its not really like cassandra, which has functionality aimed towards managing and querying huge volumes of data. The main feature here is the syncing, which is reasonably unique to the CouchDB world
[+] tmanx|12 years ago|reply
just a simple question, why would you use this instead of, say, php+mysql ?
[+] daleharvey|12 years ago|reply
My main reason is for web applications that work fully offline and sync their data to all my devices.

Writing custom code to do that on a mysql stack is very hard.