These packages connect your application state to the Redux DevTools browser extension. They allow you to inspect state changes, replay actions, and debug time travel issues. While they share the same goal, their setup and maintenance status differ greatly based on the underlying state library.
These packages connect your application state to the Redux DevTools browser extension. They allow you to inspect state changes, replay actions, and debug time travel issues. While they share the same goal, their setup and maintenance status differ greatly.
@ngrx/store-devtools integrates directly into Angular modules.
imports array in your root module.// app.module.ts
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
@NgModule({
imports: [
StoreModule.forRoot(reducers),
StoreDevtoolsModule.instrument({ maxAge: 25 })
]
})
export class AppModule {}
@ngneat/elf-devtools uses a function call to start tracking.
// main.ts
import { useDevTools } from '@ngneat/elf-devtools';
import { ElfDevTools } from '@ngneat/elf-devtools';
useDevTools(new ElfDevTools());
redux-devtools-extension wraps the store creator function.
// store.js
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
const store = createStore(
reducer,
composeWithDevTools(applyMiddleware(...middleware))
);
@ngrx/store-devtools is built for Angular.
// Angular specific module import
imports: [StoreDevtoolsModule.instrument()]
@ngneat/elf-devtools works with Angular and vanilla JS.
// Vanilla JS or Angular
useDevTools(new ElfDevTools());
redux-devtools-extension works with vanilla Redux.
// Vanilla Redux setup
composeWithDevTools(applyMiddleware(...))
@ngrx/store-devtools is actively maintained.
// Regular updates via npm
npm install @ngrx/store-devtools
@ngneat/elf-devtools is actively maintained.
// Regular updates via npm
npm install @ngneat/elf-devtools
redux-devtools-extension is deprecated.
@redux-devtools/extension or Redux Toolkit instead.// Deprecated warning
// Do not use in new projects
@ngrx/store-devtools supports full time travel.
// Configuring max age for history
StoreDevtoolsModule.instrument({ maxAge: 25 })
@ngneat/elf-devtools supports state inspection.
// Connecting Elf stores
useDevTools(new ElfDevTools());
redux-devtools-extension supports time travel.
// Legacy enhancement
composeWithDevTools()
| Package | Framework | Status | Setup Style |
|---|---|---|---|
@ngrx/store-devtools | Angular | ✅ Active | Module Import |
@ngneat/elf-devtools | Any (Elf) | ✅ Active | Function Call |
redux-devtools-extension | Any (Redux) | ❌ Deprecated | Store Enhancer |
@ngrx/store-devtools is the clear choice for Angular apps using NgRx. It integrates seamlessly with the Angular lifecycle — and requires minimal configuration.
@ngneat/elf-devtools is the right pick if you use the Elf state library. It is lightweight — and works outside of Angular if needed.
redux-devtools-extension should NOT be used in new projects. It is deprecated — use Redux Toolkit's built-in devTools or @redux-devtools/extension instead.
Choose this if you are using the Elf state management library. It works with Angular or vanilla JavaScript and offers a lightweight connection to the DevTools panel without requiring heavy framework integration.
Choose this if you are building an Angular application with NgRx. It integrates directly into Angular modules and is maintained by the official NgRx team for long-term stability.
Do NOT choose this for new projects. It is deprecated. Use Redux Toolkit's built-in devTools or the newer @redux-devtools/extension package instead for modern Redux applications.