CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/angular-best-practices

Angular patterns — standalone components, signals, inject(), reactive forms, HTTP interceptors, and new control flow

95

2.75x
Quality

94%

Does it follow best practices?

Impact

99%

2.75x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

74%

Employee Directory

Criteria
Without context
With context

Standalone components

100%

100%

Signal inputs on card component

0%

100%

inject() for dependency injection

0%

100%

toSignal() for observable conversion

0%

100%

OnPush change detection

0%

100%

New control flow syntax

0%

100%

Service uses catchError with fallback

0%

100%

Service uses map() to unwrap response

100%

100%

providedIn root on service

100%

100%

Track expression in @for

0%

100%

100%

50%

Expense Submission Form

Criteria
Without context
With context

Reactive forms used

100%

100%

Validators applied

100%

100%

Form validity check on submit

100%

100%

Standalone component

100%

100%

OnPush change detection

0%

100%

aria-required on required inputs

0%

100%

aria-invalid binding

0%

100%

role=alert on error messages

0%

100%

Label-input association

100%

100%

New control flow for error display

0%

100%

96%

78%

Notification Bell

Criteria
Without context
With context

takeUntilDestroyed for polling cleanup

0%

71%

toSignal or signal for reactive state

0%

100%

inject() for dependency injection

0%

100%

Service uses catchError with fallback

0%

100%

Service uses map() to unwrap response

0%

100%

Standalone component

100%

100%

OnPush change detection

0%

100%

New control flow syntax

0%

100%

providedIn root on service

100%

100%

Functional interceptor or error handling pattern

25%

100%

100%

50%

Settings Page

Criteria
Without context
With context

Lazy loaded child routes

0%

100%

All components standalone

100%

100%

inject() for dependency injection

100%

100%

Reactive forms for profile and security

0%

100%

OnPush change detection

0%

100%

New control flow syntax

100%

100%

Default redirect to profile

100%

100%

Validators on form controls

0%

100%

Accessibility on forms

40%

100%

RouterLink for navigation

100%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents