Back to ThoughtsTYPESCRIPT

Rethinking State Management in React

February 22, 2026·7 min read

For years, state management was the most debated topic in the React ecosystem. Redux, MobX, Zustand, Jotai — the options multiplied faster than anyone could evaluate them.

The shift to server-first

React Server Components and libraries like TanStack Query moved the default: most "state" is actually server data, and it belongs in a cache, not a store. Once you internalize this, the amount of client state in a typical app shrinks dramatically.

What's left is UI state — modal open/closed, form inputs, selected tabs. For this, useState and useContext are usually enough.

When you still need a store

Complex client-only interactions (drag-and-drop builders, collaborative editors, offline-first apps) still benefit from a dedicated store. But for the vast majority of CRUD applications, a query cache plus local component state covers everything.

The best state management strategy is the one with the least state to manage.

TaggedTypeScripttRPCZodAPI Design