# selfstore vs RxDB Source: https://selfstore.dev/compare/rxdb RxDB is a reactive client database platform with premium storages and replication plugins; selfstore is a small MIT library for the persistence loop. ## What RxDB is An ambitious reactive database for JavaScript apps: schema'd collections, live queries that push updates into your UI, swappable storage engines, encryption plugins, and replication protocols for CouchDB, GraphQL, HTTP, WebRTC and more. It is genuinely powerful, and for observable-driven apps with heavy local querying it has few rivals. Two structural notes, stated without spin: parts of the platform sit behind **premium** licensing (certain storages and features), and its replication, like PouchDB's, is designed around **endpoints you provide**: RxDB gives the protocol, you bring and operate the server side. ## What selfstore is Not a database platform. A focused MIT library for the loop around your app state: working copy in IndexedDB, portable encrypted backups with an [open spec](https://selfstore.dev/docs/format), durable homes on user-owned storage, serverless deterministic merge, headless status. Your data stays plain JSON you already own in memory; there is no schema DSL, no query language, no plugin economy. | | RxDB | selfstore | | --- | --- | --- | | Category | Reactive client database | Persistence loop library | | Queries | Live, Mango-style | None (snapshot model) | | Reactivity | Observables everywhere | One subscribe + stable state | | Sync | Protocols to endpoints you run | Serverless, via user-owned storage | | Encryption | Plugin (premium for some setups) | Built in, AES-256-GCM + Argon2id | | User-holdable backup | Export utilities | First-class, spec'd ZIP | | License | Apache-2.0 core + premium tiers | MIT, everything | | Mental surface | Large (schemas, plugins, storages) | Small (two functions + a store) | ## Use RxDB when - Your UI is built around live queries over substantial local data. - You are building replication against your own backend anyway, and want a mature protocol for it. ## Use selfstore when - You want durability, portability and device convergence **without** taking on a database platform, or a backend, or a license matrix. - Auditability matters: small MIT surface, a published [threat model](https://github.com/selfstoredev/selfstore/blob/main/THREAT-MODEL.md), and a file format anyone can implement in an afternoon. Map of this site for a model: https://selfstore.dev/llms.txt Every page in one file: https://selfstore.dev/llms-full.txt