mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dataevaluationupdated 27 Aug 2026

rxdb review

RxDB is a local-first NoSQL database for JavaScript applications, so an app can keep working with data on the device and synchronize it with a backend. Queries are reactive, which lets screens respond to database changes without a separate refresh layer.

+3 / 5dstars / 7d
Verdict

Our RxDB run installed 1,737 packages and used 1,241 MB, then all 1,447 Mocha tests passed before the overall test command failed on a missing test:browser script. Use it when offline writes, reactive queries, and backend choice justify that contributor weight. Choose a smaller database wrapper for simple browser persistence, and price the premium tier before committing to its production-only storage options.

We ran it

Lab card: what happened when we ran rxdbScreenshot of rxdb (rxdb.info)
Install✓ · 291s1737 packages · 1241 MB
Build✓ · 14s
Tests✗ · 60s1447 passed · 0 failed of 1447 (mocha)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo1561 files~136,103 lines of source · 20.3 MB · 9 CI workflows · tests dir

Answers from our run

Does rxdb build from source?

Dependencies installed in 291 seconds (1737 packages), and the build succeeded in 14 seconds. We cloned commit bc1e652 into a clean Debian container with 3 CPUs and no project-specific setup.

Do rxdb's tests pass?

Yes: 1447 of 1447 passed when we ran the project's own test command (mocha). Some failures need services or credentials a bare container does not have.

Does rxdb have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use rxdb?

Small browser apps that only need a thin IndexedDB wrapper: RxDB's 1,737-package contributor install and replication machinery add work that Dexie can avoid.

What are the alternatives to rxdb?

Dexie, PouchDB, WatermelonDB. Our RxDB run installed 1,737 packages and used 1,241 MB, then all 1,447 Mocha tests passed before the overall test command failed on a missing test:browser script.

Setup3/5Build passed, but install used 1,241 MB and tests ended on a missing script
Docs5/5Storage, replication, runtime, migration, and pricing paths are documented
Community5/523,368 stars with a push on August 27, 2026
Maturity4/5Version 17.5.0 is active; production features span free and paid tiers

Discussed on

  1. hnRxdb: A reactive database where you can subscribe to the result of a query288 points
  2. hnRxDB – a real-time database on top of PouchDB172 points
  3. hnReactive Offline-first Database74 points
  4. hnRxDB – Local JavaScript-Database60 points
  5. hnShow HN: Rxdb – A fast, reactive, client-side database52 points

Who it’s for

JavaScript teams building offline-capable web, Electron, Capacitor, or React Native applications.
Developers who want observable queries and local writes while retaining their existing backend.
Products that need to choose among browser, SQLite, memory, or server-side storage engines.
Teams prepared to design and test their own replication contract.

Who it’s NOT for

Small browser apps that only need a thin IndexedDB wrapper: RxDB's 1,737-package contributor install and replication machinery add work that Dexie can avoid.
Free-tier projects that need more than 13 collections open at once: RxDB's pricing page puts that limit on the open-source tier.
Teams expecting a hosted sync backend out of the box: the README says custom replication requires three HTTP endpoints, while other targets need their corresponding services.
Buyers who need to evaluate premium storage or performance plugins before signing: the pricing FAQ says there is no free trial and licenses are annual.
Applications staying on Node.js 18: release 17.5.0 raised RxDB's required Node.js version to 20.

Setup reality

Our sandbox install succeeded in 291 seconds, adding 1,737 packages and using 1,241 MB. The build passed in 14 seconds. Tests exited 1 after 60 seconds even though Mocha reported 1,447 passed and 0 failed; the next command stopped because npm could not find test:browser.

Basic local use needs npm, RxJS, a schema, and a chosen storage adapter. It needs no hosted credential. Replication requires your own pull, push, and event-stream contract or a configured service such as CouchDB, Firestore, Supabase, GraphQL, NATS, or Google Drive. Premium plugins require paid access.

Release 17.5.0 requires Node.js 20 or newer. Browser, React Native, Electron, Capacitor, Node.js, Deno, and Flutter paths use different storage choices. The repository has no Dockerfile, so contributors should follow the runtime-specific documentation instead of expecting one container recipe.

Reactive queries turn local writes into UI updates

RxDB stores application data locally and exposes queries as observables. A screen can subscribe to a query or a document field and receive changes as writes arrive, including changes produced by replication. The database uses JSON schemas, collections, documents, migrations, conflict handling, and attachments. That makes it closer to an application data layer than a convenience wrapper around browser storage.

The same API can sit over LocalStorage, IndexedDB through Dexie, OPFS, SQLite, memory, LokiJS, FoundationDB, or DenoKV, subject to adapter and license choices. RxDB also documents browser, Node.js, Electron, React Native, Capacitor, NativeScript, Deno, and Flutter routes. This range is useful for products sharing data code across clients, but the free tier's 13-collection ceiling and each runtime's persistence behavior need checking first.

Replication keeps your backend, but you own the contract

RxDB's generic sync engine asks an existing backend for 3 pieces: a pull handler, a push handler, and an event stream for live changes. The project also documents adapters for GraphQL, CouchDB, WebSocket, WebRTC, Supabase, Firestore, NATS, and Google Drive. Local writes can therefore work while disconnected and move later without adopting a single vendor's hosted database.

Those 3 endpoints transfer design work to the application team. Checkpoints must advance correctly, writes need stable ordering, conflicts need an explicit policy, and authentication belongs to the service around the endpoints. A quick local collection does not exercise those conditions. For a product buying offline behavior mainly to avoid building sync, RxDB may solve the client half while leaving the hardest distributed-system decisions in your code.

What happened when we ran it

Our sandbox installed commit bc1e652 in 291 seconds. npm added 1,737 packages, and the checkout occupied 1,241 MB after installation. The repository itself contained 1,561 files, about 136,103 lines of source, and 20.3 MB checked out. The build succeeded in 14 seconds on 3 CPUs with 8 GB of RAM.

The test command exited with code 1 after 60 seconds. Mocha completed 1,447 tests with 1,447 passing and 0 failing, then npm reported that the test:browser script was missing. The log does not say why that script was absent, so we cannot call the browser suite broken or skipped by design. We can say the repository's aggregate test step did not finish cleanly in our fresh Node 22 container.

Our npm audit found 0 known vulnerabilities across the installed tree: 0 critical, high, moderate, or low findings. The repository had 9 CI workflow files and a tests directory, but no Dockerfile. Those facts describe the measured commit and environment. They do not measure query speed, sync throughput, browser compatibility, or the security of an application's replication endpoints.

The open core has a 13-collection ceiling

The Apache-2.0 core includes schemas, queries, hooks, replication, migrations, and default storage options. RxDB's current pricing page limits the free tier to 13 open collections at once. It reserves specific OPFS, IndexedDB, SQLite, filesystem, WebCrypto encryption, and full-text search plugins for Pro, while Pro Plus adds worker, sharding, query optimization, and server adapter features.

This split deserves an architecture review before adoption. The public price shown for Pro starts at $99 per month billed annually, and Pro Plus starts at $239 per month billed annually. The FAQ says premium access has no free trial because it requires a signed agreement. A team can test the core at no charge, but it cannot assume the production storage path it wants is covered by that test.

Node.js 20 is now the contributor baseline

Release 17.5.0 was published on August 20, 2026 and raised the required Node.js version from 18 to 20. The release also changed GraphQL dependencies, fixed leaked Dexie connections, addressed several schema-migration cleanup paths, and fixed a React live-query unsubscribe problem. These are the kinds of defects that appear in a database spanning many runtimes, and the detailed release notes make upgrade review practical.

GitHub recorded 23,368 stars, 18 open issues and pull requests combined, and a last push on August 27, 2026. Recent open reports include stale React hook data after a key or query change and an intermittent React Native filesystem count result. That activity argues for maintenance, while the reports still warrant regression tests around the exact adapter and framework combination an app will ship.

RxDB earns its complexity when offline sync is product-critical

A team choosing RxDB should prototype the real shape of its application: the target storage, at least 1 migration, a lost connection, concurrent edits, and the intended replication backend. The 14-second build and 1,447 passing Mocha cases make the codebase credible, while the 1,241 MB install and unfinished aggregate command show that contributing is a substantial setup.

For a shared JavaScript data layer across web and native clients, RxDB offers more useful machinery than a plain IndexedDB wrapper. For a small browser tool with a few tables and no sync, Dexie is easier to explain and operate. The free tier permits up to 13 open collections, so RxDB is the better choice only when reactive local state and offline replication justify both its technical and licensing decisions.

Alternatives

ProjectWhat it isPick it when
DexieA focused IndexedDB wrapper for browser applications.pick this instead when your data stays in IndexedDB and you want less framework around it.
PouchDBAn offline browser database built around CouchDB-style replication.pick this instead when CouchDB compatibility is the main requirement and its replication model fits.
WatermelonDBA reactive database aimed at React and React Native applications.pick this instead when React Native is the fixed target and a narrower mobile-oriented design is preferable.

What people are saying

  1. [velocity-scout] pubkey/rxdb

Sources

  1. RxDB repository and README
  2. RxDB 17.5.0 release
  3. RxDB replication documentation
  4. RxDB storage documentation
  5. RxDB premium tiers and FAQ
  6. React hook stale-data report
  7. React Native filesystem count report

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →