angular-performance

gentleman-programming/gentleman-skills · updated Apr 8, 2026

$npx skills add https://github.com/gentleman-programming/gentleman-skills --skill angular-performance
0 commentsdiscussion
summary

NEVER trigger reflows/repaints in lifecycle hooks (ngOnInit, ngAfterViewInit).

skill.md

NgOptimizedImage (REQUIRED for images)

import { NgOptimizedImage } from '@angular/common';

@Component({
  imports: [NgOptimizedImage],
  template: `
    <!-- LCP image: add priority -->
    <img ngSrc="hero.jpg" width="800" height="400" priority>
    
    <!-- Regular: lazy loaded by default -->
    <img ngSrc="thumb.jpg" width="200" height="200">
    
    <!-- Fill mode (parent needs position: relative) -->
    <img ngSrc="bg.jpg" fill>
    
    <!-- With placeholder -->
    <img ngSrc="photo.jpg" width="400" height="300" placeholder>
  `
})

Rules

  • ALWAYS set width and height (or fill)
  • Add priority to LCP (Largest Contentful Paint) image
  • Use ngSrc not src
  • Parent of fill image must have position: relative/fixed/absolute

@defer - Lazy Components

@defer (on viewport) {
  <heavy-component />
} @placeholder {
  <p>Placeholder shown immediately</p>
} @loading (minimum 200ms) {
  <spinner />
} @error {
  <p>Failed to load</p>
}

Triggers

Trigger When to Use
on viewport Below the fold content
on interaction Load on click/focus/hover
on idle Load when browser is idle
on timer(500ms) Load after delay
when condition Load when expression is true
<!-- Multiple triggers -->
@defer (on viewport; on interaction) {
  <comments />
}

<!-- Conditional -->
@defer (when showComments()) {
  <comments />
}

Lazy Routes

// Single component
{
  path: 'admin',
  loadComponent: () => import('./features/admin/admin').then(c => c.AdminComponent)
}

// Feature with child routes
{
  path: 'users',
  loadChildren: () => import('./features/users/routes').then(m => m.USERS_ROUTES)
}

SSR & Hydration

bootstrapApplication(AppComponent, {
  providers: [
    provideClientHydration()
  ]
});
Scenario Use
SEO critical (blog, e-commerce) SSR
Dashboard/Admin CSR
Static marketing site SSG/Prerender

Slow Computations

Solution When
Optimize algorithm First choice always
Pure pipes Cache single result
Memoization Cache multiple results
computed() Derived signal state

NEVER trigger reflows/repaints in lifecycle hooks (ngOnInit, ngAfterViewInit).


Resources

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.854 reviews
  • Piyush G· Dec 24, 2024

    We added angular-performance from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Liam Thomas· Dec 12, 2024

    Useful defaults in angular-performance — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Henry Verma· Dec 8, 2024

    I recommend angular-performance for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Carlos Martin· Dec 4, 2024

    Solid pick for teams standardizing on skills: angular-performance is focused, and the summary matches what you get after install.

  • Luis Torres· Nov 27, 2024

    Useful defaults in angular-performance — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Aditi Desai· Nov 23, 2024

    Registry listing for angular-performance matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Ganesh Mohane· Nov 15, 2024

    angular-performance reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Olivia White· Nov 3, 2024

    I recommend angular-performance for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Harper Sharma· Nov 3, 2024

    angular-performance fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Aditi Dixit· Oct 22, 2024

    Solid pick for teams standardizing on skills: angular-performance is focused, and the summary matches what you get after install.

showing 1-10 of 54

1 / 6