CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/frontend-state-management

Proactively choose the right state management pattern: derived state, URL state, server state, local state, lifted state, Context, or external store. Always apply without being asked.

84

1.16x
Quality

76%

Does it follow best practices?

Impact

97%

1.16x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

31%

Recipe Browser with Favorites

Criteria
Without context
With context

Search and filters in URL params

0%

100%

Filtered list and stats computed not stored

100%

100%

Total time computed not stored

100%

100%

Favorites in Context with custom hook

100%

100%

Context value memoized and hook has null guard

58%

100%

Recipe data fetched in custom hooks not Context

100%

100%

Fetch cleanup with AbortController

0%

100%

Favorite toggle UI state local

100%

100%

Favorites count derived not stored

100%

100%

94%

-1%

Multi-Step Registration Wizard

Criteria
Without context
With context

Form state local not global

100%

100%

Validation derived not stored

100%

100%

Object state or useReducer for many fields

100%

100%

Submission loading state prevents double submit

100%

100%

Server errors displayed with role=alert

58%

50%

Form state not in URL

100%

100%

Step navigation state colocated

100%

100%

No server data in Context

100%

100%

100%

8%

Sales Analytics Dashboard

Criteria
Without context
With context

Filters stored in URL search params

55%

100%

Summary values computed not stored

100%

100%

Server data fetched in custom hook

100%

100%

Fetch cleanup with AbortController

100%

100%

Filtered list computed not stored

100%

100%

Local UI state colocated

100%

100%

Loading and error states handled

100%

100%

92%

24%

Online Store with Shopping Cart

Criteria
Without context
With context

Cart state at appropriate shared level

100%

100%

Cart derived values computed not stored

100%

100%

Product search and filters in URL

0%

100%

Product data fetched in custom hook not Context

100%

100%

Optimistic cart update

66%

66%

Context custom hook with null guard

100%

100%

Local UI state colocated

50%

50%

Fetch cleanup with AbortController

0%

100%

100%

9%

Team Directory with Live Search

Criteria
Without context
With context

Search and filters in URL params

50%

100%

Filtered list computed not stored

100%

100%

Stats computed not stored

100%

100%

Team data fetched in custom hook

100%

100%

Fetch cleanup with AbortController

100%

100%

Modal state local to component

100%

100%

Loading and error states handled

100%

100%

No Context or global store used

100%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents