Before reaching for NgRx or another state management library, this course asks a different question: how far can you actually get in Angular using plain RxJs? The answer, worked out across a running example app, turns out to be quite far — especially for the kind of enterprise-scale apps where a full state library can feel like overkill.
How the course is built
You start with a small Angular app written in an imperative style and see exactly where that style breaks down. From there, you refactor it step by step into a reactive one, with every RxJs operator used along the way explained in detail — starting stateless, then layering in lightweight state management for things like user data and authentication.
Topics along the way
- Smart vs. presentational components, and stateless observable services
- RxJs Subjects and BehaviorSubject as the backbone of lightweight state
- Reactive patterns for loading indicators, error handling, and optimistic UI updates
- Decoupled component communication and a master-detail pattern with a cached master table
- Refactoring components to OnPush change detection
A companion GitHub repository provides starting points and finished code for each section, so you can jump in wherever a topic interests you. It assumes basic Angular, TypeScript, and RxJs knowledge going in.