PouchDB

Decentralized Data Protocol

An open-source JavaScript database inspired by Apache CouchDB, designed to run inside the browser so that web applications work as well offline as online. Applications store JSON documents in a local database; PouchDB replicates them, in either direction and continuously if wanted, with CouchDB or any server that speaks the CouchDB replication protocol, and resolves conflicts using CouchDB's revision model. It is not a self-contained storage engine but a CouchDB-style layer over other stores: by default it uses IndexedDB in the browser and LevelDB in Node.js, with other adapters available. The project is currently an Apache Software Foundation Incubator podling .

Foundation

Details

License Permissive (Apache-2.0). https://github.com/apache/pouchdb (JavaScript monorepo with adapter and plugin packages)
Dev Status 🟢 Active
Owner Apache Software Foundation (as an Incubator podling; the project was created by Dale Harvey and later maintained by a wider contributor group); the incubation champion named on the Incubator page is Jan Lehnardt, with two ASF mentors
Governing Body Apache Software Foundation Incubator (podling PMC and mentors; champion Jan Lehnardt; graduation not yet reached)
Country United States (the Apache Software Foundation is a US 501(c)(3) charity; contributors are international)
Start Year 2010
Stack JavaScript (browser and Node.js); IndexedDB and LevelDB storage adapters, with other adapters and plugins; replication over the CouchDB HTTP protocol
Funding Volunteer-maintained under the ASF; no project funding is stated
Last Investigated Oct 29, 2026

Topology view

This tool in the centre and the things it is directly related to. Each line names the kind of relationship.

Topology view: PouchDBThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.PouchDBApache CouchDB (Basis for, Based on)ApacheCouchDB

Open in Graph Explorer

Affordances

Local-first storage Data portability Self-hostable

Decentralized Data Protocol Attributes

Origins Offline-first web development: bring CouchDB's sync model into the browser so developers can build applications that keep working without a connection and sync when they reconnect
Database Not a storage engine: a CouchDB-style layer over IndexedDB in browsers and LevelDB in Node.js, with additional adapters for other backends
Query Language Map/reduce queries, plus Mango selector queries through the separate pouchdb-find plugin, following CouchDB (both appear in the PouchDB API reference)
Data Formats JSON documents with revision identifiers and attachments, matching CouchDB's document model
Collaborative Live Editing Partial: documents replicate continuously and conflicts are detected through revision trees and resolved by the application or the winning-revision rule; there is no character-level collaborative editing
Rich Text Editing Not stated by the project.
Mobile Support Yes, through web views and JavaScript runtimes (the project runs in mobile browsers and hybrid-app frameworks)
Web Support Yes: designed to run in the browser, with IndexedDB by default
Native Apps Via embedding in Electron, Node.js and hybrid-app frameworks; not a native library
Terms Free and open source (Apache-2.0)
Funds Not stated by the project.
Based On Apache CouchDB's document model, MVCC and replication protocol; the CouchDB project defines the protocol PouchDB speaks
P2P Architecture Replication endpoints rather than a peer-to-peer network: any two PouchDB or CouchDB databases can replicate with each other over the CouchDB HTTP protocol, so a client can sync with a server or with another client that exposes the protocol; there is no discovery or relay layer
Overlay Network None: replication is between named databases over HTTP
Content Addressing No: documents are keyed by identifier and revision, and revisions carry hash-based ids, but content is not addressed by hash
Local-First Local-First: the browser database is a full replica that works offline and syncs when connected
E2EE No: PouchDB does not encrypt documents itself; encryption is left to plugins or the application
CRDTs Lib No: it uses CouchDB's revision-tree conflict model rather than CRDTs
Byzantine Fault Tolerance No: replication trusts the peer's database and its own authorisation; no Byzantine defence is described
Signature N/A: documents are not signed; authentication is HTTP-based at the server
Permissions Server-side: access control is delegated to CouchDB-compatible servers (database and document-level validation); PouchDB local databases have no permission model
Semantic Web Compatibility N/A: JSON document store with no RDF layer
Smart Contract N/A: no ledger or contract component
Protocol Stack Position Application-layer: a JavaScript library over HTTP/1.1 replication and local browser storage
Asset / Value Embedding None: no token or value-transfer mechanism
Protocol Maturity / Standardization Mature library (version 9) implementing the documented CouchDB replication protocol; the ASF incubation signals a formal governance transition rather than a specification change

Relationships

How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.