Gabriel França

~ or gfrnca

ui/ux & front-end engineer. basicamente obcecado em fazer as coisas ficarem bonitas e agradáveis de usar

Por que parei de usar Redux e adotei Zustand

Durante anos, o Redux foi quase um padrão obrigatório para gerenciar estado global em aplicações React.
Mas, conforme os projetos cresceram — e principalmente depois que comecei a usar Next.js e React Server Components — o Redux começou a parecer mais um obstáculo do que uma solução.

Foi aí que encontrei o Zustand, e minha relação com o estado global mudou completamente.

A dor com Redux

O Redux sempre me pareceu verbo demais para pouco efeito.
Criar uma store exigia reducer, actions, types, middleware, provider... e ainda assim, cada atualização parecia burocrática.

Além disso:

  • Muita cerimônia para alterações simples.
  • Dificuldade de lidar com estado assíncrono sem libs extras (Thunk, Saga).
  • Boilerplate em excesso — até para algo como isOpen: true.

Isso tudo me afastava da fluidez que eu esperava no front-end moderno.

O que o Zustand trouxe

O Zustand chegou como o oposto: simples, direto e sem mágica.
Uma store pode ser criada com literalmente algumas linhas:

import { create } from 'zustand'

type CounterState = {
  count: number
  increment: () => void
}

export const useCounter = create<CounterState>((set) => ({
  count: 0,
  increment: () => set((s) => ({ count: s.count + 1 })),
}))

E pronto — sem reducers, sem dispatch, sem actions.

Por que prefiro hoje

  • Aprendizado instantâneo: qualquer dev React entende em minutos.
  • Sem provider: a store é acessível de qualquer componente.
  • Reatividade otimizada: só re-renderiza o que precisa.
  • Integra bem com Server Components e hooks do Next.js.

Além disso, o código ficou muito mais legível — e isso impacta direto na produtividade da equipe.

Quando ainda uso Redux

O Redux ainda tem espaço em apps extremamente grandes, com times de dezenas de devs e necessidade de middlewares avançados (como logs, persistência, monitoramento).
Mas para 95% dos projetos modernos de front-end, o Zustand é mais rápido, leve e natural.

Conclusão

Migrar para o Zustand me fez perceber que menos é mais.
Gerenciar estado não precisa ser complexo — ele só precisa ser claro, previsível e fácil de testar.
E nisso, o Zustand entrega tudo o que o Redux prometeu lá atrás.