← Projetos/Design system · CG Contadores·2026

react-ui

A biblioteca de componentes que padronizou as telas da empresa e acabou com o vai e volta de cards.
react-ui

Contexto e problema

A CG Contadores já tinha um design system: não era excelente, mas dava a base. Faltava levar isso para o código. Sem uma biblioteca comum, cada tela reimplementava os componentes, e os cards voltavam da revisão por diferença de componente. A react-ui resolve isso: os sistemas instalam um pacote e recebem os componentes prontos, com o visual da empresa.

Decisões técnicas

Por que shadcn/ui

É o que existe de melhor no mundo React hoje. Por ser headless, dá para construir a nossa abstração em cima do que já existe, e o padrão de tokens em CSS já vem pronto para virar tema. E, como é muito difundido, a IA conhece bem: o desenvolvimento acelera demais.

Por que versionamento automático com release-please

Cada commit segue o Conventional Commits: fix gera patch, feat gera minor e uma quebra gera major. O release-please abre um PR de release com a versão nova e o changelog; ao fazer merge, sai a tag e a release. Quando a versão muda, o pipeline roda lint, type-check, testes e build antes de publicar. Ninguém decide número de versão na mão.

Por que AWS CodeArtifact e não o npm

A estrutura da empresa já está na AWS. Deixar o pacote aberto no npm ou pagar um serviço a mais não fazia sentido. Os sistemas apontam o escopo da empresa para o registry privado e cada dev se autentica com um token temporário.

Por que pensada para agentes de IA

O repositório tem regras para agentes de código (branches, commits, como portar componentes) e a biblioteca traz uma skill para quem a consome. Quem usa um agente no outro sistema recebe o jeito certo de usar cada componente. No sistema novo, organizei o mesmo tipo de documentação (AGENTS.md, CLAUDE.md e skills): a lib de componentes mais um trabalho com IA bem direcionado é o que fez a entrega de telas acelerar.

Desafios

  • 01Seis versões major em três semanas, entre abril e maio de 2026: as APIs do Button, do Modal e da ordenação da DataTable foram redesenhadas cedo, enquanto poucos sistemas usavam a biblioteca. O versionamento semântico deixou cada quebra explícita.
  • 02Componentes complexos com API simples: a DataTable tem virtualização e scroll infinito, e o Modal é aberto por um controlador, sem estado espalhado pela tela.
  • 03O que eu faria diferente: hoje a biblioteca tem uma porta de entrada só. Na prática, um sistema que usa só o botão pode acabar levando junto o código de todos os componentes, e a página fica mais pesada do que precisa (em termos técnicos, o tree shaking não está afinado). O próximo passo é separar as entradas, para cada sistema carregar só o que usa.

Resultado

~15 dias
até a primeira versão estável
8x
mais rápido para portar uma tela, somando a lib e o trabalho com IA
2
sistemas em produção: intranet e portal do cliente

Próximo case

Caipira Plus →

--fps