Search selfstore
v1.8.22

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