PouchDB

What PouchDB is
PouchDB is an open-source JavaScript database for applications that need local data, offline use, and synchronization with CouchDB-compatible servers. It runs in browsers and Node.js, using the same API in both environments. When a connection is available, data can synchronize in both directions. The project documents support for CouchDB 1.x, 2.x, and 3.x, Cloudant, and PouchDB Server. Browser storage uses IndexedDB by default. For Node.js versions later than 22.5.0, the adapters documentation describes an adapter that uses Node’s native SQLite module.
PouchDB is framework-agnostic, with Angular, React, Ember, and Backbone among the named options. It can also run with Cordova/PhoneGap, NW.js, Electron, and Chrome apps. Documents need to be serializable as JSON; attachments can be base64-encoded strings or Blob objects. Synchronization with a database that is not CouchDB-compatible requires a backend that speaks the CouchDB replication protocol. The project lists GitHub Discussions, Slack, and Stack Overflow for discussion, and says it is undergoing incubation at the Apache Software Foundation.
Who it suits
PouchDB suits JavaScript developers building browser or Node.js applications that need local data and offline use with bidirectional synchronization to CouchDB-compatible servers. Its framework-agnostic approach and support for several mobile and desktop environments may fit projects using those frameworks or runtimes.
What it does well
- Free, open-source JavaScript database.
- The same API works in browsers and Node.js.
- Supports offline use and bidirectional synchronization.
- Uses IndexedDB by default in browsers.
- Works with several CouchDB-compatible servers.
- Framework-agnostic, with named framework examples.
What to know first
- Direct sync requires a CouchDB-compatible backend.
- Documents must be serializable as JSON.
- Mobile Safari has a hard 50MB WebSQL limit.
- Cordova/PhoneGap unlimited data requires a SQLite plugin.
Limits
PouchDB is free. On Mobile Safari, the FAQ describes a hard 50MB WebSQL limit; Cordova/PhoneGap can have unlimited data when using a SQLite plugin.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free open-source project | Free open-source project · JavaScript database; runs in browsers and Node.js | Free |
| Free | open-source database · API access · online documentation support | Free |
As pouchdb.apache.org lists them, read 7 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the PouchDB website.
- Choose a browser or Node.js environment; the API works in both.
- Use the free open-source project.
- For browser storage, PouchDB uses IndexedDB by default.
- Connect to a supported CouchDB-compatible server when synchronization is needed.
Verdict
Choose PouchDB for a JavaScript application that needs local storage, offline operation, and bidirectional sync with a CouchDB-compatible server. Look elsewhere if the backend cannot speak the CouchDB replication protocol or the application needs documents that are not serializable as JSON.
Questions
How much does PouchDB cost?
The listed plan is free, billed as a Free open-source project.
Can PouchDB work offline?
Yes. It stores data locally so applications can work offline and synchronize in both directions when online.
Which environments does it support?
PouchDB runs in browsers and Node.js with the same API. Listed platforms also include Android, iOS, web, Windows, API, extensions, and self-hosted use.
Which servers can it synchronize with?
The project documents CouchDB 1.x, 2.x, and 3.x, Cloudant, and PouchDB Server. A different database must have a backend that speaks the CouchDB replication protocol for direct synchronization.
Is PouchDB open source?
Yes. It is an open-source JavaScript database, and the project site says it is undergoing incubation at the Apache Software Foundation.
What data can it store?
Documents must be serializable as JSON. Attachments can be supplied as base64-encoded strings or Blob objects.
Facts from PouchDB's own pages
- Asynchronous API
- The public API supports callbacks, promises and async functions. · pouchdb.apache.org, 15 Oct 2026
- Browser preset
- The pouchdb-browser preset includes IndexedDB plus replication, HTTP and map/reduce plugins. · pouchdb.apache.org, 15 Oct 2026
- Browser storage
- PouchDB uses IndexedDB by default in browsers and prefers IndexedDB over separately installed WebSQL support. · pouchdb.apache.org, 7 Oct 2026
- Build tooling
- Custom builds require an npm-oriented bundler such as Browserify, Webpack, Rollup, SystemJS or JSPM; direct prebuilt-file workflows are not supported for custom builds. · pouchdb.apache.org, 15 Oct 2026
- Community support
- The project points users to GitHub issues, Slack, mailing lists and Stack Overflow for help. · github.com, 15 Oct 2026
- Company founded
- LinkedIn lists The Apache Software Foundation as founded in 1999. · linkedin.com, 15 Oct 2026
- Company headquarters
- The Apache Software Foundation lists its mailing address in Wilmington, Delaware, United States. · apache.org, 15 Oct 2026
- Company legal entity
- The Apache Software Foundation is a U.S. 501(c)(3) nonprofit organization and the listed steward of Apache PouchDB. · apache.org, 15 Oct 2026
- Company size
- LinkedIn lists the Apache Software Foundation in the 5,001–10,000 employee size range. · linkedin.com, 15 Oct 2026
- Compatibility limit
- PouchDB cannot sync directly with a non-CouchDB database unless the backend speaks the CouchDB replication protocol. · pouchdb.apache.org, 7 Oct 2026
- CouchDB compatibility
- The project aims to closely reproduce the CouchDB API and replication behavior. · pouchdb.apache.org, 15 Oct 2026
- Custom builds
- Packages can be assembled from presets, plugins and utilities to reduce bundle size or tailor functionality. · pouchdb.apache.org, 15 Oct 2026
- Data formats
- PouchDB stores documents that must be serializable as JSON and supports attachments supplied as base64-encoded strings or Blob objects. · pouchdb.apache.org, 7 Oct 2026
- Documentation depth
- Official materials include a getting-started tutorial, API reference, guides, FAQ, adapter documentation and plugin listings. · pouchdb.apache.org, 15 Oct 2026
- Document operations
- The API includes database creation, document insertion and updates, deletion, bulk operations and changes feeds. · pouchdb.apache.org, 15 Oct 2026
- Environments
- PouchDB runs in browsers and Node.js, and its API works the same across those environments. · pouchdb.apache.org, 7 Oct 2026
- Frameworks
- The project says it is framework-agnostic and can be used with Angular, React, Ember, Backbone, or another framework. · pouchdb.apache.org, 7 Oct 2026
- License
- PouchDB is distributed under the Apache License 2.0. · github.com, 15 Oct 2026
- Limit: Analytics workload
- DEV.co advises against using PouchDB for high-volume real-time analytics or warehouse-scale aggregation. · dev.co, 15 Oct 2026
- Limit: Conflict handling
- DEV.co says applications must define how concurrent replication conflicts are resolved or merged. · dev.co, 15 Oct 2026
- Limit: Query performance
- The official performance report says secondary-index construction is expensive and recommends other databases for complex queries or large datasets when synchronization is unnecessary. · pouchdb.com, 15 Oct 2026
- Limit: Storage-engine variability
- The official performance report documents materially different performance across IndexedDB, WebSQL, LevelDB and memory adapters. · pouchdb.com, 15 Oct 2026
- Limit: Transaction model
- DEV.co warns that PouchDB follows eventual consistency rather than providing strict ACID multi-document transactions. · dev.co, 15 Oct 2026
- Local storage adapters
- Browser databases use IndexedDB, older browsers may use WebSQL, and Node.js uses LevelDB by default. · pouchdb.apache.org, 15 Oct 2026
Where PouchDB stands on Freedom251
- Mobile Databases#2 of 26