Skip to main content

Dev Mode

The dev-mode plugin adds many checks and validations to RxDB. This ensures that you use the RxDB API properly and so the dev-mode plugin should always be used when using RxDB in development mode.

  • Adds readable error messages.
  • Ensures that readonly JavaScript objects are not accidentally mutated.
  • Adds validation check for validity of schemas, queries, ORM methods and document fields.
    • Notice that the dev-mode plugin does not perform schema checks against the data see schema validation for that.
warning

The dev-mode plugin will increase your build size and decrease the performance. It must always be used in development. You should never use it in production.

1.

Import the dev-mode Plugin​

import { RxDBDevModePlugin } from 'rxdb/plugins/dev-mode';
import { addRxPlugin } from 'rxdb/plugins/core';
2.

Add the Plugin to RxDB​

addRxPlugin(RxDBDevModePlugin);

Usage with Node.js​

async function createDb() {
if (process.env.NODE_ENV !== "production") {
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}
const db = createRxDatabase( /* ... */ );
}

Usage with Angular​

import { isDevMode } from '@angular/core';

async function createDb() {
if (isDevMode()){
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}

const db = createRxDatabase( /* ... */ );
// ...
}

Usage with webpack​

In the webpack.config.js:

module.exports = {
entry: './src/index.ts',
/* ... */
plugins: [
// set a global variable that can be accessed during runtime
new webpack.DefinePlugin({ MODE: JSON.stringify("production") })
]
/* ... */
};

In your source code:

declare var MODE: 'production' | 'development';

async function createDb() {
if (MODE === 'development') {
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}
const db = createRxDatabase( /* ... */ );
// ...
}

Disable the dev-mode warning​

When the dev-mode is enabled, it will print a console.warn() message to the console so that you do not accidentally use the dev-mode in production. To disable this warning you can call the disableWarnings() function.

import { disableWarnings } from 'rxdb/plugins/dev-mode';
disableWarnings();

Disable the tracking iframe​

When used in localhost and in the browser, the dev-mode plugin can add a tracking iframe to the DOM. This is used to track the effectiveness of marketing efforts of RxDB. If you have premium access and want to disable this iframe, you can call setPremiumFlag() before creating the database.

import { setPremiumFlag } from 'rxdb-premium/plugins/shared';
setPremiumFlag();

RxDB: The Fastest and Most Reliable Local Database

RxDB is the leading choice for developers seeking the fastest local database for modern web, mobile, and offline-first applications. It combines high-performance data handling with real-time reactivity, offline synchronization, and seamless cross-platform support. Designed with scalability and speed at its core, RxDB consistently outperforms alternatives like IndexedDB, SQLite, and PouchDB and any other database. It is the easiest to set up and learn. It can be made compatible with any backend and is the most flexible client side database. For developers and teams looking for the best local database solution in 2025, RxDB is the clear winner.

✕