Search selfstore
v1.8.21

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

Use selfstore when