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 .
LicensePermissive (Apache-2.0). https://github.com/apache/pouchdb (JavaScript monorepo with adapter and plugin packages)
Dev Status 🟢 Active
OwnerApache 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 BodyApache Software Foundation Incubator (podling PMC and mentors; champion Jan Lehnardt; graduation not yet reached)
CountryUnited States (the Apache Software Foundation is a US 501(c)(3) charity; contributors are international)
Start Year 2010
StackJavaScript (browser and Node.js); IndexedDB and LevelDB storage adapters, with other adapters and plugins; replication over the CouchDB HTTP protocol
FundingVolunteer-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.
Local-first storage Data portability Self-hostable
Decentralized Data Protocol Attributes
OriginsOffline-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
DatabaseNot a storage engine: a CouchDB-style layer over IndexedDB in browsers and LevelDB in Node.js, with additional adapters for other backends
Query LanguageMap/reduce queries, plus Mango selector queries through the separate pouchdb-find plugin, following CouchDB (both appear in the PouchDB API reference)
Data FormatsJSON documents with revision identifiers and attachments, matching CouchDB's document model
Collaborative Live EditingPartial: 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 SupportYes, through web views and JavaScript runtimes (the project runs in mobile browsers and hybrid-app frameworks)
Web SupportYes: designed to run in the browser, with IndexedDB by default
Native AppsVia embedding in Electron, Node.js and hybrid-app frameworks; not a native library
TermsFree and open source (Apache-2.0)
Funds Not stated by the project.
Based OnApache CouchDB's document model, MVCC and replication protocol; the CouchDB project defines the protocol PouchDB speaks
P2P ArchitectureReplication 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 NetworkNone: replication is between named databases over HTTP
Content AddressingNo: documents are keyed by identifier and revision, and revisions carry hash-based ids, but content is not addressed by hash
Local-FirstLocal-First: the browser database is a full replica that works offline and syncs when connected
E2EENo: PouchDB does not encrypt documents itself; encryption is left to plugins or the application
CRDTs LibNo: it uses CouchDB's revision-tree conflict model rather than CRDTs
Byzantine Fault ToleranceNo: replication trusts the peer's database and its own authorisation; no Byzantine defence is described
SignatureN/A: documents are not signed; authentication is HTTP-based at the server
PermissionsServer-side: access control is delegated to CouchDB-compatible servers (database and document-level validation); PouchDB local databases have no permission model
Semantic Web CompatibilityN/A: JSON document store with no RDF layer
Smart ContractN/A: no ledger or contract component
Protocol Stack PositionApplication-layer: a JavaScript library over HTTP/1.1 replication and local browser storage
Asset / Value EmbeddingNone: no token or value-transfer mechanism
Protocol Maturity / StandardizationMature 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.