selfstore vs RxDB
TL;DR: RxDB is a database platform - reactive queries, many storage engines, replication to servers you bring, premium tiers. selfstore is deliberately smaller: the save/backup/sync loop, MIT all the way down, no server anywhere.
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, 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, and a file format anyone can implement in an afternoon.