Checklists

Angular implementation checklist

A technical verification list for deploying enterprise-grade Angular applications, focusing on modern standalone architecture, performance budgets, and RxJS memory safety.

Progress0 / 30 complete (0%)

Performance & Bundle Optimization

0/5
  • Enable Production Build Flags

    critical

    Verify that 'optimization', 'aot', and 'buildOptimizer' are set to true in the production configuration within angular.json.

  • Configure Bundle Size Budgets

    critical

    Define 'budgets' in angular.json for the 'initial' bundle type with a maximum warning of 500kb and error at 1mb to prevent bundle bloat.

  • Enforce Lazy Loading for Feature Routes

    critical

    Audit the AppRoutingModule to ensure all top-level feature routes use 'loadComponent' or 'loadChildren' instead of direct imports.

  • Implement NgOptimizedImage

    recommended

    Replace all standard <img> tags with the 'NgOptimizedImage' directive and provide 'priority' attributes for LCP elements.

  • Tree-shake Third-party Libraries

    recommended

    Run 'source-map-explorer' on the production build to identify and remove unused modules from heavy libraries like Lodash or Moment.js.

Architecture & Modernization

0/5
  • Migrate to Standalone Components

    recommended

    Convert all components to 'standalone: true' and eliminate 'NgModule' declarations to reduce architectural complexity and improve tree-shaking.

  • Standardize Dependency Injection

    recommended

    Use the 'inject()' function in components and services instead of constructor injection for better type inference and cleaner inheritance.

  • Utilize Angular Signals for Local State

    recommended

    Replace local 'BehaviorSubject' or 'OnPush' manual triggers with Angular Signals to optimize the change detection cycle and reduce overhead.

  • Global Service Provisioning

    critical

    Verify that all singleton services use 'providedIn: root' to ensure they are tree-shakable and correctly scoped for the entire application.

  • Strict Type Checking

    critical

    Set 'strict': true in tsconfig.json to enforce null checks and strict property initialization across the codebase.

RxJS & Data Management

0/5
  • Prevent Observable Memory Leaks

    critical

    Ensure every manual '.subscribe()' call in components is paired with 'takeUntilDestroyed' or an explicit 'unsubscribe' in ngOnDestroy.

  • Prefer Async Pipe over Manual Subscriptions

    critical

    Audit templates to use the '| async' pipe for data rendering, delegating subscription management to the framework.

  • Implement SwitchMap for Race Conditions

    recommended

    Verify that search and filter inputs use 'switchMap' rather than 'mergeMap' to cancel obsolete HTTP requests during rapid user input.

  • Define Strong API Interfaces

    critical

    Replace all instances of 'any' in HttpClient calls with specific TypeScript interfaces representing the backend data contracts.

  • Centralized Error Handling

    critical

    Implement a global 'HttpInterceptor' to catch 401, 403, and 500 status codes and route them to a consistent error handling service.

Security & Infrastructure

0/5
  • Sanitize Dynamic HTML

    critical

    Verify that any content passed to [innerHTML] is processed through Angular's 'DomSanitizer' to prevent XSS attacks.

  • Configure XSRF Protection

    critical

    Configure 'HttpClientXsrfModule' with 'cookieName' and 'headerName' matching the backend's CSRF implementation.

  • Secure Environment Variables

    critical

    Check that environment.prod.ts does not contain hardcoded secrets; use build-time replacement for sensitive API keys.

  • Route Guard Implementation

    critical

    Apply 'CanActivate' guards to all protected routes to ensure client-side authorization is enforced before component initialization.

  • Enable Content Security Policy

    recommended

    Add a CSP meta tag or header that restricts script execution to trusted domains and prevents inline script execution.

Testing & Quality Assurance

0/5
  • Unit Test Business Logic

    recommended

    Achieve 80% coverage on services containing complex transformation logic using Jest or Karma.

  • Critical Path E2E Coverage

    critical

    Implement Cypress or Playwright tests for the 'Happy Path' of the primary user workflows (e.g., Login, Checkout, Data Submission).

  • Mock External Dependencies

    critical

    Ensure all component tests use 'TestBed' to provide mock implementations of services to isolate the unit under test.

  • Automated Linting Gate

    recommended

    Configure 'ng lint' as a required check in the CI/CD pipeline to prevent code style regressions.

  • Accessibility (A11y) Audit

    recommended

    Run 'axe-core' or the Angular CDK A11y module to verify that all interactive elements have correct ARIA labels and keyboard focus states.

AI & Integration Patterns

0/5
  • Stream AI Responses

    recommended

    Utilize RxJS 'fromFetch' or 'EventSource' to handle streaming responses from LLM endpoints to provide real-time UI updates.

  • AI Loading State UX

    recommended

    Implement specific 'Signal'-based loading indicators for AI inference tasks to manage user expectations during high-latency operations.

  • Error Boundaries for AI Services

    critical

    Wrap AI-driven components in error boundaries to ensure that a failure in the LLM service does not crash the entire application shell.

  • Result Caching Strategy

    optional

    Implement a caching layer (e.g., in NgRx or a Service) for common AI queries to minimize token costs and improve response times.

  • UI Distinction for AI Content

    optional

    Apply a specific CSS class or icon to any data generated by AI to comply with transparency requirements for enterprise users.