Skip to main content

The local Database for JavaScript Applications

  • Realtime Queries: From results of queries to single document fields, with RxDB you can observe everything which makes building realtime applications effortless.
  • Realtime Replication: Run a two-way realtime replication with one of the many replication plugins. Also making your custom backend compatible is pretty simple.
  • Offline Support: Store data locally on your clients device to build applications that still work when there is no internet access. Running queries locally also improves your user experience.
  • Supports all JavaScript runtimes: With the flexible RxDB storage layer you can run the same code in Browsers, Node.js, Electron, React-Native, Capacitor, Bun and Deno.
  • Great Performance: Years of performance optimization made RxDB one of the fastest ways to store and query data inside of JavaScript.
Quickstart »Star (20,172)
RxDB Discord chat
Chat on

Our Success Stories

"We use RxDB to provide an offline first, cross platform point of sale system"

WooCommerce POS

"RxDB is a main component in building offline-ready multichannel apps. It has become our default stack for this kind of apps."

"We use RxDB to create applications capable of being used in the most remote areas where Internet access is really a challenge."

"We provide a mobile app that is used by people in the field to fill in valuable information like inspections, surveys and audits"

"We use RxDB to provide an offline first, cross platform point of sale system"

WooCommerce POS

Realtime applications made easy

From the results of a query, to a single field of a document, with RxDB you can observe everything. This enables you to build realtime applications fast and reliable. It does not matter if the data was changed by a user event, another browser tab or by the replication. Whenever your data changes, your UI reflects the new state. You can either use RxJS or add custom reactiveness libraries like signals or other state management.

Writeawait collection.upsert({
  id: 'foobar',
  color: '#e6008d'

Observeawait collection.findOne('foobar')
 .$ // get observable
 .subscribe(d => {
   screen.backgroundColor = d.color;

Replicate with your existing infrastructure

RxDB supports replication with a CouchDB server or any custom GraphQL endpoint which smoothly integrates with your existing infrastructure. Also you can use the replication primitives plugin to create custom replications over any protocol like HTTP, Websocket, WebRTC or Firestore.

RxDB github star
Open Source on

Online is optional

RxDB follows the Offline First paradigm where an application must work as well offline as it does online. This is done by persisting data locally on the client side and replicating it in the background. RxDB can even be used solely on the client side, with no backend at all.

  • Your application still works offline
  • Increases perceived performance
  • Easier and faster implementation
  • Needs less backend resources and scales better

Flexible storage layer

RxDB is based on a storage interface that enables you to swap out the underlying storage engine. This increases code reuse because the same database code can be used in any JavaScript runtime by just switching out the storage settings.

Trusted and open source

github star
Github Stars
npm downloads
npm downloads
RxDB made Projects
Twitter followers

Pricing Models

RxDB Basics

Free & Open Source
  • Basic RxStorages
  • Realtime Replication
  • Live Queries
  • Schema Validation
  • Multi-Tab Support
  • Encryption
  • Compression
Get the Code

Consulting Session

fast in person consulting

Book a one hour consulting session with the RxDB maintainer. I will answer all your questions, give proposals for your use case and we can even do a pair programming session if you have a specific problem in your source code.
You can book this by doing a one-time donation via github sponsors.

Book Now