Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    PouchDB Blog

    pouchdb.com · Company blog · on HN since 2012

    The PouchDB project blog covers the JavaScript database that syncs with CouchDB, including its internals, build system and async programming lessons.

    Visit blogHN submissions
    DatabasesWeb DevelopmentOpen Source & Linux
    What HN says

    HN commenters name PouchDB as a good local-first database with optional sync, though one says slow development was a dealbreaker.

    Stats for nerds
    93HN people shared it
    27linked in comments
    871story points
    Jul 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      PouchDB, the JavaScript Database That Syncs
      63 people · 498 points · first shared 2012 · 94 comments on HN
    2. 2
      We have a problem with promises
      12 people · 169 points · first shared 2015 · 102 comments on HN
    3. 3
      Things I learned from reading and writing the PouchDB source
      2 people · 84 points · first shared 2014 · 11 comments on HN
    4. 4
      Introducing PouchDB custom builds
      1 person · 36 points · first shared 2016 · 4 comments on HN
    5. 5
      Taming the asynchronous beast with ES7
      2 people · 30 points · first shared 2015 · 18 comments on HN
    6. 6
      A better build system with Rollup
      2 people · 25 points · first shared 2016 · Discussion on HN
    7. 7
      PouchDB is CouchDB for the Browser
      1 person · 6 points · first shared 2012 · Discussion on HN
    8. 8
      PouchDB 6.0 released
      1 person · 5 points · first shared 2016 · Discussion on HN
    9. 9
      PouchDB 4.0.1 released
      1 person · 4 points · first shared 2015 · Discussion on HN
    10. 10
      Secondary indexes have landed in PouchDB
      1 person · 4 points · first shared 2014 · Discussion on HN

    What HN people wrote when they linked it

    • tarr11Aug 2017

      I was looking really hard at using CouchDB 2.0 for an offline-first progressive web app. The biggest asset in my opinion of CouchDB is actually PouchDB [1] PouchDB is really great and nicely designed.

      However, the showstopper that I hit was that CouchDB still does not support permissions on a per-user basis (even though PouchDB encourages this explicitly [2])

      What this means is that if you have a typical system with users and logins, who can only access their own data, and you require some sort of aggregated view where you can view all users data behind some sort of permissions (admin user, etc), you are forced to create a new db for each user in Couch, and then run replication for those users to a separate master.

      Think for example if you wanted to store images in CouchDB, and then have some sort of global feed (like instagram)

      So, systems with many users (tens of thousands -> millions) would be stuck replicating an equal number of couch databases constantly. Each replica in 2.0 was an erlang thread, and each database is a separate file. Apparently some of the performance issues were fixed in 2.1, but it still requires a physical file per db and continuous replication.

      Some promising solutions like envoy [3] from Cloudant, which were based on Mango [4] have been worked on, but don't seem to have much support in the core Couch community and feels to have been abandoned.

      Another problem is that you can't really throttle or manage pouchDB <-> couchDB replication very…

    • rakooNov 2014

      I don't know how node-webkit works exactly, but npm uses CouchDB to store the packages definition. If node-webkit works the same (ie you can publish the application on the npm registry), you can replicate the registry (or part of it) on other places, and redirect your local node-webkit installer on those replicas.

      These replicas don't need to be CouchDB instances, they just need to speak its protocol. Fortunately for you there's an excellent package that does that: PouchDB (http://pouchdb.com/), which you can use as a library (so you don't need to install another server) in your node.js application.

      Finally, when the user wants to install the application that is published on the npm registry, it would have to get some kind of signature from the registry, and then pick any mirror to download the content from. This is a very important step: there must be a way for the user to make sure what he downloads is legit. One can assume if it's on the npm registry then it is.

      This is not bittorrent, but it's much more integrated in the current environment which means less hacking to do.

    • daleharveyApr 2014

      Safari are finally adding IndexedDB, which means for the first time we have a unified storage interface across all the browsers.

      IndexedDB is kinda nasty to work with directly, but there are fairly good libraries on top of it. http://www.taffydb.com/ looks great for complex queries. One I work on http://pouchdb.com provides syncing (also works with WebSQL)

      WebSQL is also pretty nasty to work with, hand crafting SQL string in the browser for one just feelds weird, even yesterday I had a bug filed which related to the internal SQLLite implementation (the entire reason WebSQL is a no go is it has one implementation, Richard Hipp would now own web storage)

      I havent seen much support from webSQL, even between those of us who actually use it most are just waiting for it to die, indexeddb in safari is that final nail

    • tracker1Jan 2019

      That won't fit in cookie space... this is really for redundant controls for session/access tokens etc... anything large like that you're better off using caching and a service worker to handle repeated requests. Also, cookies are sent with every request to the server, and I don't think you'd want the user sending 10MB to your server for every request.

      Also, if you are storing larger strings in local/sessionStorage, websql or indexdb, you should use lz-string[1] to try to minimize storage impact.

      Aside: if you want something with a nicer interface for underlying storage you may want to look at pouchdb[2], which has a localized couch interface and supports remote synching to coudchdb, which is pretty nice.

      [1] https://github.com/pieroxy/lz-string
      [2] https://pouchdb.com/

    • dahjelleMar 2015

      While I've not dug into ForerunnerDB, it sounds like it is playing in the same space as PouchDB[1]. PouchDB is a JS database that works in the browser or in Node with various back-ends for data storage, syncs with CouchDB (or compatible, such as PouchDB Server) on the back-end, and currently uses map-reduce queries, though there is work in-progress to implement a MongoDB-like query language[2]. (This will match the Mango query language soon to be seen in CouchDB [3].)

      Plus I've been really impressed with the development team—responsive to issues, consistent releases, high code-quality. It's a great project!

      [1] http://pouchdb.com/
      [2] https://github.com/nolanlawson/pouchdb-find
      [3] https://github.com/cloudant/mango

    • oblibMay 2020

      I'm not really familiar with mongo db but I have been working with couchdb for awhile now.

      I just posted a "Show HN" of a simple demo app I made that uses CouchDB installed on the client side. CouchDB will run a Mac, Windows, and Linux desktop PCs.

      The demo uses PouchDB.js to interact with CouchDB. PouchDB is really pretty sweet.

      Take a look at the demo and play around with it a bit. There are two web pages that are both self contained. One sets up a user and db, the other demonstrates crud routines.

      https://cherrypc.com/app/editor/setup.html

      https://cherrypc.com/app/editor/index.html

      Also check out the PouchDB docs: https://pouchdb.com/

    Related

    CouchDB Blogblog.couchdb.org20 people

    CouchDB 2.0

    CouchDB Blog
    Company · last shared 2025
    Cloudant Blogcloudant.com52 people

    The Future of Apache CouchDB

    Cloudant Blog
    Company · last shared 2017
    Couchbase Blogblog.couchbase.com52 people

    Unreasonable Effectiveness of SQL

    Couchbase Blog
    Company · last shared 2022
    Fauna Blogfauna.com70 people

    Demystifying Database Systems: An Introduction to Transaction Isolation Levels

    Fauna Blog
    Company · last shared 2025
    Figma Blogfigma.com608 people

    How to build a plugin system on the web and also sleep well at night

    Figma Blog
    Company · last shared 2026
    Slack Engineeringslack.engineering281 people

    Taking PHP Seriously

    Slack Engineering
    Company · last shared 2026
    Oracle Blogsblogs.oracle.com651 people

    “Stop reverse engineering our code”

    Oracle Blogs
    Company · last shared 2026
    Crunchy Data Blogcrunchydata.com187 people

    Learn Postgres at the Playground – Postgres compiled to WASM running in browser

    Crunchy Data Blog
    Company · last shared 2026