MR
Mayur Rathi
@mayurrathi
⭐ 40.7k GitHub stars

Angular Best Practices

Angular Best Practices is an writing AI skill with a core value of Angular performance optimization and best practices guide. It helps developers solve real-world problems in the writing domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Angular performance optimization and best practices guide. Use when writing, reviewing, or refactoring Angular code for optimal performance, bundle size, and rendering efficiency.

Last verified on: 2026-07-07

Quick Facts

Category writing
Works With Claude
Source sickn33/antigravity-awesome-skills
Stars ⭐ 40.7k
Last Verified 2026-07-07
Risk Level Low
mkdir -p ./skills/angular-best-practices && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/angular-best-practices/SKILL.md -o ./skills/angular-best-practices/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Angular Best Practices


Comprehensive performance optimization guide for Angular applications. Contains prioritized rules for eliminating performance bottlenecks, optimizing bundles, and improving rendering.


When to Apply


Reference these guidelines when:


- Writing new Angular components or pages

- Implementing data fetching patterns

- Reviewing code for performance issues

- Refactoring existing Angular code

- Optimizing bundle size or load times

- Configuring SSR/hydration


---


Rule Categories by Priority


| Priority | Category | Impact | Focus |

| -------- | --------------------- | ---------- | ------------------------------- |

| 1 | Change Detection | CRITICAL | Signals, OnPush, Zoneless |

| 2 | Async Waterfalls | CRITICAL | RxJS patterns, SSR preloading |

| 3 | Bundle Optimization | CRITICAL | Lazy loading, tree shaking |

| 4 | Rendering Performance | HIGH | @defer, trackBy, virtualization |

| 5 | Server-Side Rendering | HIGH | Hydration, prerendering |

| 6 | Template Optimization | MEDIUM | Control flow, pipes |

| 7 | State Management | MEDIUM | Signal patterns, selectors |

| 8 | Memory Management | LOW-MEDIUM | Cleanup, subscriptions |


---


1. Change Detection (CRITICAL)


Use OnPush Change Detection


typescript
// CORRECT - OnPush with Signals
@Component({
  changeDetection: ChangeDetectionStrategy.OnPush,
  template: `<div>{{ count() }}</div>`,
})
export class CounterComponent {
  count = signal(0);
}

// WRONG - Default change detection
@Component({
  template: `<div>{{ count }}</div>`, // Checked every cycle
})
export class CounterComponent {
  count = 0;
}

Prefer Signals Over Mutable Properties


typescript
// CORRECT - Signals trigger precise updates
@Component({
  template: `
    <h1>{{ title() }}</h1>
    <p>Count: {{ count() }}</p>
  `,
})
export class DashboardComponent {
  title = signal("Dashboard");
  count = signal(0);
}

// WRONG - Mutable properties require zone.js checks
@Component({
  template: `
    <h1>{{ title }}</h1>
    <p>Count: {{ count }}</p>
  `,
})
export class DashboardComponent {
  title = "Dashboard";
  count = 0;
}

Enable Zoneless for New Projects


typescript
// main.ts - Zoneless Angular (v20+)
bootstrapApplication(AppComponent, {
  providers: [provideZonelessChangeDetection()],
});

**Benefits:**


- No zone.js patches on async APIs

- Smaller bundle (~15KB savings)

- Clean stack traces for debugging

- Better micro-frontend compatibility


---


2. Async Operations & Waterfalls (CRITICAL)


Eliminate Sequential Data Fetching


typescript
// WRONG - Nested subscriptions create waterfalls
this.route.params.subscribe((params) => {
  // 1. Wait for params
  this.userService.getUser(params.id).subscribe((user) => {
    // 2. Wait for user
    this.postsService.getPosts(user.id).subscribe((posts) => {
      // 3. Wait for posts
    });
  });
});

// CORRECT - Parallel execution with forkJoin
forkJoin({
  user: this.userService.getUser(id),
  posts: this.postsService.getPosts(id),
}).subscribe((data) => {
  // Fetched in parallel
});

// CORRECT - Flatten dependent calls with switchMap
this.route.params
  .pipe(
    map((p) => p.id),
    switchMap((id) => this.userService.getUser(id)),
  )
  .subscribe();

Avoid Client-Side Waterfalls in SSR


typescript
// CORRECT - Use resolvers or blocking hydration for critical data
export const route: Route = {
  path: "profile/:id",
  resolve: { data: profileResolver }, // Fetched on server before navigation
  component: ProfileComponent,
};

// WRONG - Component fetches data on init
class ProfileComponent implements OnInit {
  ngOnInit() {
    // Starts ONLY after JS loads and component renders
    this.http.get("/api/profile").subscribe();
  }
}

---


3. Bundle Optimization (CRITICAL)


Lazy L

🎯 Best For

  • Engineering teams doing code reviews
  • Open source maintainers
  • Tech leads planning refactors
  • Developers modernizing legacy code
  • UI designers

💡 Use Cases

  • Reviewing pull requests for security vulnerabilities
  • Checking code style consistency
  • Migrating from class components to hooks
  • Breaking apart monolithic functions

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Angular Best Practices to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Does this skill check for OWASP Top 10?

Security-focused review skills often include OWASP checks. Check the skill content for specific vulnerability categories covered.

Does this handle breaking changes?

Refactoring skills identify breaking changes but always run your test suite after applying suggestions.

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

Can Angular Best Practices maintain my brand voice?

Yes — provide style guides or example content in your prompt for consistent brand-aligned output.

How do I install Angular Best Practices?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/angular-best-practices/SKILL.md, ready to use.

⚠️ Common Mistakes to Avoid

Blindly accepting AI suggestions

Always verify AI-generated review comments. Some suggestions may not apply to your specific codebase conventions.

Refactoring without tests

Never refactor critical paths without a comprehensive test suite to catch regressions.

Skipping usability testing

AI-generated designs should be validated with real users before development.

Publishing unedited drafts

AI writing needs human editing for facts, flow, and authentic voice.

🔗 Related Skills