Zustand es la librería de estado más usada después de Redux en el ecosistema React. La mantiene el equipo de Poimandres (mismos autores de Jotai, Valtio y React Spring) y propone una idea minimalista: un store es simplemente un hook (useStore) construido con create(), sin Provider, sin actions, sin reducers, sin context. Menos de 1 KB de runtime y una API que cabe en una página.
El estilo es directo: defines un store con su estado y sus acciones (que mutan el estado de forma inmutable o, con Immer integrado, mutándolo localmente), y cualquier componente que quiera leer una porción del estado usa const value = useStore(s => s.value). Zustand se encarga de re-renderizar solo cuando ese slice cambia, sin necesidad de selectors ni useMemo manuales. Para casos más complejos integra middlewares para persistencia, devtools y subscripciones imperativas.
A diferencia de Redux, Zustand no fuerza un único store ni un patrón rígido. Puedes crear varios stores para distintos dominios (auth, UI, modales, drafts) y consumirlos donde haga falta. Esa flexibilidad lo hace ideal para SPAs medianas donde no quieres el overhead de Redux pero sí necesitas algo más que useState + props drilling o Context API.
En 10Code usamos Zustand para estado puramente cliente: paneles laterales abiertos, drafts de formularios complejos, filtros, selecciones múltiples. Para datos de servidor preferimos TanStack Query (que ya tiene su propio sistema de caché). La combinación TanStack Query + Zustand cubre la inmensa mayoría de necesidades de estado en una app React moderna, con muchísimo menos código que Redux.
En 10Code llevamos más de una década aplicando estas tecnologías a productos reales. Si quieres comentarnos tu caso, escríbenos y te respondemos personalmente.
Hablar con un ingeniero