NgRx 22 introduces resource extensions through a new experimental @ngrx/signals/resource entry point. These extensions wrap an existing resource and patch default behaviors such as resetting value() to undefined during reload and throwing in an error state. Four built-in extensions are included alongside a provideResourceExtensions function for registering defaults at application, route, or component level.
The update also makes deep signals dynamic. Previously, a state slice typed as a union collapsed into a single flat Signal. Now each object literal member gets its own DeepSignal, reachable after narrowing with an in check.
Version 22 includes a new SignalStoreFeatureType utility that extracts the state and members of a feature factory, enabling custom features to reuse them as input types without redeclaration. @ngrx/store-devtools gains an actionCreators option for dispatching from Redux DevTools, and @ngrx/eslint-plugin now supports ESLint v10 while dropping ESLint v8 and legacy .eslintrc format.
Community feedback on the resource extensions has been positive. In the original RFC, Marko Stanimirović explained that changing the error behavior is a prerequisite for deeper SignalStore integration. Manfred Steyer responded "Love it!" and suggested an activation signal, while another commenter asked for parity with SolidJS's createResource. On Hacker News, one user wrote that NgRx Signals is "the new way and its lovely", while another noted that "RxJS and NgRX are becoming less and less necessary to use too, which is great."
Developers upgrading need Angular 22, TypeScript 6.0, and RxJS ^6.5 or ^7.5. The upgrade can be run with ng update @ngrx/store@22 or ng update @ngrx/signals@22 for SignalStore-only projects. Most breaking changes have automated migrations, detailed in the v22 migration guide and changelog. Teams should also note that Angular 22 changed resource timing, which may cause test failures.
NgRx is an open-source, community-driven framework sponsored by Nx and CodeRabbit. Its source is available on GitHub.
