ADR-0001 Framework de UI
Biblioteca de UI padrão da empresa para todas as apps web — React.
- Decisão
- ReactConstruir a app
- Estado
- Aceite
- Data
- Âmbito
- Predefinição da empresa para todas as novas apps
Ligações
Contexto
Seção intitulada “Contexto”Todos os produtos que construímos precisam de uma camada de UI. Uniformizar num único framework de UI significa componentes partilhados, um perfil de contratação partilhado, conhecimento partilhado e nenhuma rediscussão em cada projeto. A escolha condiciona a decisão do framework de aplicação (ADR-0002) e, mais tarde, a decisão de estilos.
Opções consideradas
Seção intitulada “Opções consideradas”1. React
Seção intitulada “1. React”A opção dominante. O maior ecossistema, a maior bolsa de recrutamento, e todos os principais frameworks de aplicação suportam-no como alvo de primeira classe.
Prós
- O maior ecossistema: bibliotecas de componentes, ferramentas, documentação e respostas existem para tudo
- A maior bolsa de recrutamento; a maioria dos candidatos não precisa de período de adaptação
- Suporte de primeira classe em todos os meta-frameworks (TanStack Start, Next.js, Remix, Astro)
- Funcionalidades concorrentes maduras; o conhecimento de server components transfere-se entre frameworks
Contras
- Sem uma solução full-stack oficial por si só — precisa de um meta-framework
- Volatilidade do ecossistema (embora a estabilizar)
- Verboso em comparação com as alternativas compiladas
2. Vue / Nuxt
Seção intitulada “2. Vue / Nuxt”Framework progressivo com uma excelente DX baseada em single-file components.
Prós
- Curva de aprendizagem suave, documentação excelente
- O Nuxt é uma solução full-stack coerente
- O modelo de reatividade é simples e explícito
Contras
- Bolsa de recrutamento e ecossistema mais pequenos do que os do React
- O TanStack Start é React-first — escolher Vue quebraria a direção da stack
- Menos bibliotecas de componentes de nível empresarial
3. Svelte / SvelteKit
Seção intitulada “3. Svelte / SvelteKit”Componentes compilados, boilerplate mínimo.
Prós
- Menos boilerplate, excelente DX
- Bundles pequenos, runtime rápido
Contras
- A mais pequena bolsa de recrutamento das três
- Lacunas no ecossistema para necessidades empresariais
- O TanStack Start é React-first — quebra a direção da stack
4. SolidJS / outros (Angular, Qwik)
Seção intitulada “4. SolidJS / outros (Angular, Qwik)”Bons frameworks, mas bolsas de recrutamento de nicho e lacunas no ecossistema tornam-nos más predefinições para toda a empresa.
Decisão
Seção intitulada “Decisão”O React é o framework de UI padrão da empresa para todas as novas apps web.
É a base mais segura: o maior ecossistema, a maior bolsa de recrutamento, e é o alvo de primeira classe do TanStack Start (ADR-0002). O custo da verbosidade do React é amplamente compensado por nunca ficarmos bloqueados por uma biblioteca em falta ou por uma pergunta sem resposta.
Consequências
Seção intitulada “Consequências”Mais fácil: recrutamento, integração de novos membros, partilha de componentes entre produtos, integrações de terceiros (analytics, UIs de autenticação e pagamentos lançam primeiro SDKs React).
Mais difícil: nada de relevante — mas comprometemo-nos a acompanhar a evolução do React (compiler, server components) em vez de ficarmos presos a padrões antigos.
Do que abdicamos: dos bundles mais pequenos dos frameworks compilados (Svelte/Solid). Aceite — o tamanho do bundle não é o nosso estrangulamento; a velocidade da equipa é.

