HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
pubkey
rxdb
TypeScript2016–2023
pubkey / rxdb

rxdb

The local-first database that runs on every JS runtime and replicates with your existing backend - no vendor, no lock-in - https://rxdb.info/

23Distinct people
53Mentions
0Explicit recommenders
23.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The local-first database that runs on every JS runtime and replicates with your existing backend - no vendor, no lock-in - https://rxdb.info/

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year53 dated mentions

Observed mentions: 2016-12-04 18:12:48 UTC to 2023-05-18 15:29:54 UTC.

051015202016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 6 mentions; 6 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 21 mentions; 16 submissions, 5 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 3 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 6 mentions; 4 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC660
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC21165
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC523
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC615
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC734
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC642
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC110

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
A fast, local-first, reactive Database for JavaScript Applications                 What is RxDB? RxDB (short for Reactive Database) is a local-first, NoSQL-database for JavaScript Applications. Reactive means that you can not only query the current state, but subscribe to all state changes like the result of a query or even a single field of a document. This is great for UI-based realtime applications in a way that makes it easy to develop and also has great performance benefits. Use the quickstart, read the documentation or explore the example projects.   Used by many RxDB is a proven technology used by thousands of developers worldwide. With its flexibility, RxDB is used in a diverse range of apps and services. (add yours)   Multiplayer realtime applications   Replicate with your existing infrastructure RxDB provides an easy to implement, battle-tested Sync Engine for realtime replication with your existing infrastructure. You do not have to use a specific cloud or backend database. The protocol works by implementing three simple HTTP endpoints. There are also production-ready plugins to easily replicate with GraphQL, CouchDB, Websocket, WebRTC (P2P), Supabase, Firestore, NATS or Google Drive.   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 different JavaScript environments by just switching out the storage settings. You can use RxDB on top of LocalStorage, IndexedDB, OPFS, LokiJS, Dexie.js, in-memory, SQLite, in a WebWorker thread and even on top of FoundationDB and DenoKV. No matter what kind of runtime you have, as long as it runs JavaScript, it can run RxDB: Browsers Node.js React Native Capacitor NativeScript Flutter or as an Electron Database All the features that you need Since its beginning in 2018, RxDB has gained a huge set of features and plugins which makes it a flexible full solution regardless of which type of application you are building. Every feature that you need now or might need in the future is already there. Logging Attachments ORM Conflict Handling Middleware Signals TanStack DB State Backup Replication Server Storages Local Documents Schema Validation Compression Migration Encryption CRDT Population   Quick start Install npm install rxdb rxjs --save Store data import { createRxDatabase } from 'rxdb/plugins/core'; /** * For browsers, we use the localstorage based storage. * In other JavaScript runtimes, we can use different storages: * @link https://rxdb.info/rx-storage.html */ import { getRxStorageLocalstorage } from 'rxdb/plugins/storage-localstorage'; // create a database const db = await createRxDatabase({ name: 'heroesdb', // the name of the database storage: getRxStorageLocalstorage() }); // add collections with a schema await db.addCollections({ heroes: { schema: { version: 0, primaryKey: 'name', type: 'object', properties: { name: { type: 'string', maxLength: 100 }, healthpoints: { type: 'number' } }, required: ['name', 'healthpoints'] } } }); // insert a document await db.heroes.insert({ name: 'Bob', healthpoints: 100 }); Query data once const aliveHeroes = await db.heroes.find({ selector: { healthpoints: { $gt: 0 } } }).exec(); // the exec() returns the result once Observe a Query await db.heroes.find({ selector: { healthpoints: { $gt: 0 } } }) .$ // observable with updated query results .subscribe(aliveHeroes => console.dir(aliveHeroes));   Get started Get started now by reading the docs or exploring the example-projects.   Support and Contribute Leave a Star ☝️ Check out how you can contribute to this project. Read this when you have found a bug Buy access to the premium plugins Join us at discord to get help Follow us at LinkedIn More content Angular Database, Frontend Database, localStorage, React Database, Browser Database, React Native Database, PWA Database, In-memory NoSQL database, JSON database, Angular IndexedDB, React IndexedDB, Optimistic UI, local database, React Native Encryption, Vue Database, jQuery Database, Vue IndexedDB, Firestore Alternative, Firebase Realtime Database Alternative, Ionic Storage, Electron SQLite, SQLite Sync, TanStack DB Offline, DDIL Database View llms.txt
Read the full README on GitHub

What Hacker News says

53 sources
I am developing a web/JavaScript database for several years now [1]. What I do not understand is, how graph based databases, (like surrealDB or gundb) plan to have great performance when they run in the browser. The thing is that you are always limited to store your data inside of the browsers IndexedDB. So as soon as you do not work with the same document-based model similar to the IndexedDB API, you will have big troubles when it comes to performance. For example how can you store and query graph based data in IndexedDB without heavily overfetching either on read or on writes? IndexedDB is already way too slow. [1] https://github.com/pubkey/rxdb
In SurrealDB – Document-graph database, for the realtime web
RxDB maintainer here. I am aware of that problem. Pouchdb got some good love in the last weeks where some people made good PRs with fixes for the indexeddb adapter. But still it is mostly unmaintained and issues are just closed by the state bot instead of being fixed. So in the last major RxDB release [1] I abstracted the underlaying pouchdb in a way that it can be swapped out for a different storage engine. This means you could in theory use RxDB directly on SQLite or indexeddb. In practice of course someone has to first create a working implementation of the RxStorage interface. [1] https://github.com/pubkey/rxdb/blob/master/orga/releases/10....
In Offline First
Hi, Daniel here. About a year ago, I made this algorithm called EventReduce. It is able to optimize database queries that run multiple times (aka Realtime-Queries or Live-Queries). Before making EventReduce, I scouted over about 2 years if something like this already exists but couldnt find something similar other then MongoDBs OPLOG_DRIVER. After finishing EventReduce last year I added it to my little side project database, RxDB[1] where it is sucessfully in use over the last year. Also I already made a hackernews post [2] with mixed comments about how this can work and when this is usefull. So now I am here again with the goal to get some feedback of people who try out EventReduce on top of their database. [1] https://github.com/pubkey/rxdb [2] https://news.ycombinator.com/item?id=22888239
In Show HN: EventReduce – Algorithm to optimise db queries that run multiple times
For the last 4 years I made a client side databases which solves this problem. You subscribe to queries and directly update the dom whenever something changes that affects the queries result. You can mix this with a client-server replication (couchdb or GraphQL) and voila, you have a website that always shows the correct data at each point in time. It even works offline, you have no loading spinners once the replication is in sync. Errors are handled in the background. https://github.com/pubkey/rxdb
In The Web After Tomorrow (2015)

Showing the 15 most recent of 53 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.