Skip to main content

Start here

What RxAngular is​

RxAngular is a reactive toolkit for Angular, made of six focused packages: state, template, cdk, isr, eslint-plugin and rebundle. It is a complement to modern Angular. Signals, zoneless change detection and native control flow do the everyday work. RxAngular fits the narrower spots where they are an awkward fit, namely shared and async-heavy state, high-performance rendering of large live lists, concurrent scheduling, incremental static regeneration and build output tuning. This page orients you before you pick a package. Each section below links out to the package that owns the detail.

The six packages​

State and Template are the two journeys most readers travel. CDK is the helper layer underneath them. It holds the render strategies, coercing and transformations that most consumers never import directly. isr, eslint-plugin and rebundle are standalone tools you add when you have the specific need.

PackageReach for it when…VersionPeers
@rx-angular/stateyou need global or shared, complex derived, or async-heavy state (signals already cover local state)v22@angular/core >=22.0.0
@rx-angular/templateyou need high-performance rendering of large live lists, concurrent scheduling, or reactive suspense/error/completev22@angular/core >=22.0.0
@rx-angular/cdkyou are building on the primitives, like render strategies, coercing and transformationsv22@angular/core >=22.0.0
@rx-angular/isryou run Angular SSR and want Incremental Static Regenerationv22@angular/ssr >=22.0.0
@rx-angular/eslint-pluginyou want to enforce reactive discipline or keep a codebase zoneless-readyv3eslint >=8.0.0
@rx-angular/rebundleyou build with esbuild and want fewer, better grouped chunksv1none

If you are unsure where to begin, reach for State first if your question is about data, and Template first if your question is about rendering. The other four are additive.

Signals-first positioning​

Signals first

For local component state, Angular signals are the default. Reach for signal(), computed() and linkedSignal() first. RxState complements signals. It earns its place for global or shared state, complex derived state and async-heavy orchestration, with multi-source connect, actions and effects bridged into signals. See Reactive state: global vs local, RxState + signals.

Angular is zoneless by default, and signals are the default for local state. RxAngular is positioned around that reality. It does not replace signal(), computed(), or native @if/@for, and it does not ask you to bring back Zone.js. It adds value where native Angular is a poor fit (shared and async state, scheduled rendering, and the reactive template context) and bridges into signals at the edges. For the split of when a signal is enough and when RxState complements it, see Reactive state: global vs local, RxState + signals.

Install​

Install only the package you need. Each is independent:

npm install @rx-angular/state
npm install @rx-angular/template
npm install @rx-angular/cdk
npm install @rx-angular/isr # also needs @angular/ssr
npm install @rx-angular/eslint-plugin --save-dev
npm install @rx-angular/rebundle --save-dev

state, template, cdk and isr release in step with Angular. Install the major version that matches your Angular major. On Angular 21, stay on the v21 releases. eslint-plugin and rebundle have release lines of their own. The Version and Peers columns in the table above list the current lines.

For anything deeper than this orientation, follow the package links above. The detail lives there.