La gestión de estado ha sido uno de los desafíos más complejos en desarrollo frontend. Redux dominó durante años pero su verbosidad y complejidad frustraban desarrolladores. Una nueva generación de bibliotecas como Zustand y Jotai ofrecen simplicidad radical sin sacrificar potencia, cambiando fundamentalmente cómo construimos aplicaciones React.
Redux funciona pero requiere boilerplate extenso: actions, action creators, reducers, middleware. Para agregar un campo al estado, modificas múltiples archivos. Para desarrolladores nuevos, conceptos como immutability y pure functions son confusos. Proyectos acumulan miles de líneas de código de gestión de estado para funcionalidad relativamente simple. Debe haber manera mejor.
Zustand reduce gestión de estado a lo esencial. Defines un store con un hook, actualizas estado directamente, y eso es todo. No hay providers, no hay actions, no hay reducers. El código es tan mínimo que parece mágico pero funciona perfectamente. Zustand maneja subscripciones, re-renders y optimizaciones automáticamente. Lo que tomaba 100 líneas en Redux toma 10 en Zustand.
Jotai adopta filosofía diferente: estado se divide en átomos pequeños e independientes. Componentes se suscriben solo a átomos que usan, previniendo re-renders innecesarios automáticamente. Átomos se componen para crear estado derivado sin computaciones redundantes. El modelo mental es intuitivo: cada pieza de estado es autocontenida y composable.
Redux sigue siendo apropiado para aplicaciones masivas con lógica de estado extremadamente compleja, especialmente si ya tienes ecosistema Redux maduro con middleware personalizado extenso. Redux DevTools ofrece capacidades de debugging inigualables. Si tu equipo ya domina Redux y funciona bien, no hay razón urgente para migrar. Pero para proyectos nuevos, alternativas modernas merecen consideración seria.
Muchos problemas que tradicionalmente resolvíamos con Redux son realmente server state: datos que provienen de backend. React Query y SWR especializan en esto, manejando caching, revalidación y sincronización automáticamente. Zustand o Jotai manejan client state puro (UI state, formularios, configuración local). Separar estas preocupaciones simplifica arquitectura dramáticamente.
Migración completa raramente es necesaria. Introduce Zustand o Jotai para features nuevas mientras mantienes Redux para código existente. Gradualmente refactoriza módulos a medida que tocas código. Co-existencia es totalmente viable. Muchas empresas operan felizmente con múltiples soluciones de estado en paralelo durante transiciones.