Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
oguzhan18 avatar

Angular Signals

  • 175 installs
  • 6 repo stars
  • Updated April 4, 2026
  • oguzhan18/angular-ecosystem-skills

Adopt Angular signals for fine-grained reactive state, computed derivations, and effects instead of RxJS-heavy patterns in new or migrated components.

About

Teaches Angular's signals model for reactive UI state: creating writable signals, deriving computed values, running side effects safely, combining signals with templates and control flow, and gradually replacing imperative subscription code with declarative, zone-friendly reactivity.

  • signal, computed, and effect primitives
  • Fine-grained updates without manual subscriptions
  • Interop patterns with RxJS observables
  • Component and service-level reactive stores
  • Migration guidance from BehaviorSubject patterns

Angular Signals by the numbers

  • 175 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #907 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oguzhan18/angular-ecosystem-skills --skill angular-signals

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs175
repo stars6
Last updatedApril 4, 2026
Repositoryoguzhan18/angular-ecosystem-skills

What it does

Adopt Angular signals for fine-grained reactive state, computed derivations, and effects instead of RxJS-heavy patterns in new or migrated components.

Files

SKILL.mdMarkdownGitHub ↗

Angular Signals

Version: Angular 16+ (2025) Tags: Reactivity, State Management, Signals API

References: Angular SignalsAPI Reference

API Changes

This section documents version-specific API changes.

  • NEW: Angular 19 Resource API — New way to handle async data with built-in loading/error states
  • NEW: linkedSignal() — Creates a signal linked to external sources with getter/setter source
  • NEW: Signal inputs — Use input() and input.required() for reactive component inputs
  • NEW: toSignal() and toObservable() — Bridge between RxJS and Signals
  • NEW: effect() improvements — Better cleanup with onCleanup callback
  • NEW: Zoneless change detection — Works seamlessly with Signals

Best Practices

  • Use computed() for derived state — Never use effect() for deriving values
// ✅ DO THIS - derived state
totalPrice = computed(() => {
  return this.items().reduce((sum, item) => sum + item.price, 0);
});

// ❌ DON'T - side effects in computed
badComputed = computed(() => {
  const data = this.data();
  this.logService.log(data); // Side effect - don't do this!
});
  • Use signal() for writable state
count = signal(0);

// Update with set()
count.set(5);

// Update with update()
count.update(value => value + 1);

// Update with mutate() for objects
user.update(u => ({ ...u, name: 'New Name' }));
  • Use effect() only for side effects
effect(() => {
  analytics.track('cart-updated', {
    itemCount: this.items().length
  });
});
  • Always cleanup effects to prevent memory leaks
effect((onCleanup) => {
  const timer = setTimeout(() => { /* ... */ }, 300);
  onCleanup(() => clearTimeout(timer));
});
  • Use Signal Inputs instead of traditional @Input()
// Modern signal inputs (Angular 17+)
userId = input<string>('');
user = input.required<User>();

// Computed based on input
greeting = computed(() => `Hello, ${this.user()?.name}`);
  • Use toSignal() for RxJS to Signal conversion
// Convert Observable to Signal
users = toSignal(this.http.get('/api/users'), { initialValue: [] });
  • Don't nest effects — Can cause performance issues
  • Use equality functions for complex object comparisons
user = signal<User | null>(null, {
  equal: (a, b) => a?.id === b?.id
});
  • Use Signals for UI state, RxJS for complex async — Signals and RxJS serve different purposes

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.