
Angular Best Practices Signalstore
- 444 installs
- 37 repo stars
- Updated March 28, 2026
- alfredoperez/angular-best-practices
angular-best-practices-signalstore is an agent skill (version 1.2.0) that applies NgRx SignalStore patterns with withEntities, withComputed, and rxMethod for developers modernizing Angular reactive state without full NgR
About
angular-best-practices-signalstore (version 1.2.0, MIT) in alfredoperez/angular-best-practices provides NgRx SignalStore rules for signal-based shared and feature state in Angular applications. Four documented rules cover rxMethod for debounced RxJS side effects, SignalStore for shared state without full NgRx overhead, withComputed for memoized derived state, and withEntities for O(1) collection lookups and CRUD operations. Impact ratings mark shared-state and rxMethod guidance as HIGH and MEDIUM priorities during refactors. The skill activates on @ngrx/signals and @ngrx/signals/entities work and explicitly excludes legacy NgRx Store or class-based state services. Globs target **/*.ts and **/*.store.ts files across feature modules. Developers reach for this add-on alongside angular-best-practices when creating or refactoring .store.ts files, integrating RxJS pipelines in stores, or migrating component state to centralized SignalStores. Install paths are published on skills.sh for both the core and SignalStore skills.
- SignalStore entity and patch patterns
- Side-effect and computed signal guidance
- Migration from legacy NgRx-style state
- Component integration best practices
Angular Best Practices Signalstore by the numbers
- 444 all-time installs (skills.sh)
- Ranked #642 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/alfredoperez/angular-best-practices --skill angular-best-practices-signalstoreAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 444 |
|---|---|
| repo stars | ★ 37 |
| Last updated | March 28, 2026 |
| Repository | alfredoperez/angular-best-practices ↗ |
How do you implement NgRx SignalStore in Angular?
Implement and refactor Angular SignalStore state with correct entity patterns, side effects, and component wiring when modernizing reactive data flow in feature modules.
Who is it for?
Angular developers adopting @ngrx/signals who need entity management and RxJS side effects without migrating to full NgRx Store.
Skip if: Projects still on NgRx Store or class-based services that are not adopting SignalStore, per the skill's explicit scope exclusion.
When should I use this skill?
User works with @ngrx/signals, SignalStore, withEntities, withComputed, rxMethod, or .store.ts state refactors in Angular.
What you get
SignalStore definitions with entity collections, computed selectors, and rxMethod side-effect pipelines wired to components.
- SignalStore .store.ts implementations
By the numbers
- Skill version 1.2.0 with 4 documented SignalStore rules
- Glob patterns target **/*.ts and **/*.store.ts files
Files
Angular SignalStore Best Practices
NgRx SignalStore rules for signal-based local and feature state management. Use with the core angular-best-practices skill for comprehensive Angular coverage.
Links
When to Apply
- Creating or modifying SignalStore-based state management
- Integrating RxJS side effects with
rxMethod - Managing collections with
withEntities
Rules
| Rule | Impact | Description |
|---|---|---|
| Use rxMethod for RxJS Integration | MEDIUM | Debounce, switchMap, and other RxJS operators in stores |
| Use SignalStore for Shared State | HIGH | Signal-based reactivity without full NgRx overhead |
| Use withComputed for Derived State | MEDIUM | Centralized memoized derivation logic |
| Use withEntities for Collections | MEDIUM | O(1) lookups and standardized CRUD operations |
Install
Install from skills.sh/alfredoperez/angular-best-practices:
- Core skill: angular-best-practices
- This add-on: angular-best-practices-signalstore
Angular Signalstore Best Practices
Use with the core angular-best-practices skill.---
1. SignalStore
Impact: HIGH (Local/feature state)
1.1 Use rxMethod for RxJS Integration
Impact: MEDIUM (Debounce, switchMap, and other RxJS operators)
Use rxMethod from @ngrx/signals/rxjs-interop for RxJS-based side effects like debounced search.
Example:
searchUsers: rxMethod<string>(pipe(
debounceTime(300), switchMap(q => http.get<User[]>(`/api/users?q=${q}`)),
tap(users => patchState(store, { users })),
))1.2 Use SignalStore for Shared State
Impact: HIGH (Simpler than NgRx, signal-based reactivity)
Use signalStore() from @ngrx/signals for shared state across components without full NgRx overhead. Combine withState(), withComputed(), and withMethods() to define state shape, derived values, and actions.
Example:
export const UsersStore = signalStore(
withState({ users: [] as User[], loading: false }),
withMethods((store) => ({ load: () => patchState(store, { loading: true }) })),
);1.3 Use withComputed for Derived State
Impact: MEDIUM (Memoized derivation, cleaner store API)
Add derived state to SignalStore using withComputed instead of computing in components. Keeps derivation logic centralized and memoized.
Example:
withComputed((store) => ({
filteredUsers: computed(() => store.users().filter(u => u.name.includes(store.filter()))),
}))1.4 Use withEntities for Collections
Impact: MEDIUM (O(1) lookups, standardized CRUD)
Use withEntities<T>() from @ngrx/signals/entities for collection management with O(1) lookups and standardized CRUD operations.
Example:
withEntities<User>(),
withMethods((store) => ({
update(id: string, changes: Partial<User>) { patchState(store, updateEntity({ id, changes })); },
}))---
Related skills
How it compares
Pick angular-best-practices-signalstore for @ngrx/signals feature stores; pick the core angular-best-practices skill for components, DI, and non-SignalStore patterns.
FAQ
What does angular-best-practices-signalstore cover?
angular-best-practices-signalstore documents four NgRx SignalStore rules for rxMethod RxJS integration, shared signal state, withComputed derived values, and withEntities collection CRUD with O(1) lookups.
When should angular-best-practices-signalstore not be used?
angular-best-practices-signalstore explicitly excludes NgRx Store and class-based state services; use the core angular-best-practices skill for general Angular patterns outside SignalStore.