Construa um Frontend React/TypeScript com o Claude Code: Guia Prático (2026)
Sim, você consegue construir um frontend React com o Claude Code de ponta a ponta: configuração do projeto, geração de componentes TypeScript, cuidar de estado/dados, estilizar seguindo um design system, escrever testes e otimizar a performance. O Claude Code é uma CLI agêntica que lê seu repositório inteiro, edita vários arquivos e roda o servidor de desenvolvimento e os testes em loop — exatamente por isso ele combina com React/TS. O fluxo de 6 passos:
- Instalar o Claude Code + fazer o scaffold de um app Vite React-TS
- Escrever um
CLAUDE.mdque trava sua stack e suas convenções - Gerar componentes a partir de prompts bem delimitados e revisar o diff antes de aceitar
- Adicionar dados/estado com TanStack Query + Router
- Escrever testes (Vitest + RTL) e corrigir acessibilidade
- Otimizar com lazy loading, memoização e divisão de bundle
O Claude Code consegue construir um frontend React/TS?
Sim — o Claude Code consegue construir um frontend React/TypeScript completo, de um único componente a uma funcionalidade inteira com testes e ajuste de performance. Essa é a resposta curta se você ainda está avaliando. Mas, para entender por que ele faz isso melhor do que um chatbot no qual você cola código, você precisa saber o que torna o Claude Code diferente.
O Claude Code é uma CLI agêntica: em vez de devolver um trechinho solto para você copiar, ele lê a árvore do seu projeto diretamente, abre vários arquivos de uma vez, edita-os conforme a especificação e então roda comandos (servidor de desenvolvimento, testes, typecheck) e lê a saída para continuar corrigindo. Esse loop de "ler o repositório -> editar -> rodar -> ler o erro -> corrigir de novo" é o que o torna uma boa escolha para React/TS, porque um projeto frontend de verdade sempre tem peças interconectadas: um componente novo precisa de um tipo de outro arquivo, precisa dos imports certos, precisa combinar com o seu tema e com os seus testes existentes. Um modelo que só enxerga um único prompt não vê essas restrições; o Claude Code vê, porque mantém o projeto inteiro como contexto.
Na prática, ele é mais forte quando você deixa que ele rode typecheck e testes depois de cada mudança — um tipo errado ou um import quebrado aparece na mesma sessão, em vez de esperar para te morder na hora do build. Se você é totalmente iniciante, leia primeiro o que é o Claude Code e como ele funciona para pegar o modelo agêntico antes de mergulhar.
Configuração: instalar o Claude Code + fazer o scaffold de um projeto React/TS
Três coisas antes de digitar seu primeiro prompt: instalar o Claude Code, montar um esqueleto React-TS e então iniciar o Claude Code dentro do diretório do projeto.
- Instale o Claude Code. Veja o passo a passo por sistema operacional no nosso guia sobre como instalar o Claude Code. Depois de instalado, rode
claude --versionpara confirmar que a CLI está pronta. - Crie um app Vite + React + TypeScript. O Vite é o padrão leve para uma SPA React:
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm run dev
Isso monta uma estrutura src/, uma configuração TypeScript e um servidor de desenvolvimento em localhost:5173. Se o seu alvo for o Next.js em vez de uma SPA, veja o FAQ no final.
- Abra o Claude Code no repositório. A partir da raiz do projeto, rode:
claude
O Claude Code reconhece isso como um projeto React-TS pelo package.json e pelo tsconfig.json. Daqui em diante você dá instruções em português simples. Um pequeno hábito: antes de delegar qualquer trabalho de verdade, peça Read the src/ structure and summarize the stack in use para confirmar que ele realmente "entende" o projeto.
Configurar o CLAUDE.md para um projeto React/TS
Esse é o passo que dois de cada três concorrentes pulam, e ele decide a qualidade de tudo que vem depois. O CLAUDE.md é um arquivo que o Claude Code lê automaticamente a cada sessão — pense nele como as "convenções do projeto" que você escreve uma vez para não precisar repetir sua stack e suas regras em todo prompt. Para um frontend, um template prático fica assim:
# CLAUDE.md - React/TS project
## Stack
- Vite + React 19 + TypeScript (strict mode)
- Styling: Tailwind CSS (or MUI v7 - pick one, don't mix)
- Data: TanStack Query; Routing: TanStack Router
- Testing: Vitest + React Testing Library
## Code conventions
- Functional components + hooks only. No class components.
- TypeScript strict: NO `any`. If a type is unclear, ask first.
- Absolute imports via the `@/` alias (already set in tsconfig).
- Every component has explicit prop types (a `XxxProps` interface).
- Complex components ship with a test.
## Workflow
- Before editing multiple files, outline a short plan for me to approve.
- After each change: run `npm run typecheck` and the relevant tests.
- Don't install new dependencies without asking.
As linhas mais valiosas: "no any", "absolute imports" e "run typecheck after every change". Elas cortam exatamente os erros que o Claude Code tende a cometer quando lhe faltam restrições. Para aprofundar na escrita desse arquivo, veja o guia completo do CLAUDE.md. O ponto central para o trabalho de frontend: quanto mais claramente você trava a stack e a regra de "revisar o diff antes de aceitar", mais a saída combina com o estilo do seu projeto em vez de derivar toda vez.
Gerando seu primeiro componente React/TS (um passo a passo real)
Esse é o coração de tudo. Como você escreve o prompt decide 80% do resultado. Um bom prompt declara a stack + as restrições + os estados a tratar, não apenas o objetivo. Compare:
- Prompt fraco: "Crie um componente UserCard." -> o Claude Code tem que adivinhar as props, adivinhar a estilização e pode puxar uma biblioteca por conta própria.
- Prompt bom: "Crie um componente
UserCardemsrc/components/. Props tipadas:user(id, name, avatarUrl, role),isLoading,error. Mostre um skeleton durante o carregamento; mostre uma mensagem em caso de erro; estilize com Tailwind usando o tema existente. Adicione um arquivo de teste básico. Não adicione dependências novas."
Com o segundo prompt, o Claude Code normalmente cria tudo de uma vez: UserCard.tsx, a interface de props, três ramos de renderização (loading/error/data) e UserCard.test.tsx. Um exemplo da interface que ele gera:
interface User {
id: string;
name: string;
avatarUrl: string;
role: string;
}
interface UserCardProps {
user?: User;
isLoading?: boolean;
error?: string | null;
}
O passo que você não pode pular: revisar o diff antes de aceitar. O Claude Code mostra as mudanças por arquivo como um diff. Leia com cuidado — verifique se os imports realmente existem, se ele mexeu discretamente em outros arquivos, se algum tipo foi afrouxado para any. Aceite as partes com as quais você está satisfeita e peça para ele corrigir o resto (por exemplo: "extraia o skeleton para um componente próprio"). Depois de aceitar, deixe que ele rode npm run typecheck e os testes ali mesmo na sessão.
Estado, busca de dados & roteamento
Para um projeto React moderno de 2026, não deixe o Claude Code partir direto para o Redux por padrão. O padrão mais enxuto para a maioria dos casos: hooks para estado local, TanStack Query para estado de servidor, TanStack Router para navegação, e recorra a estado global (Zustand/Context) só quando você genuinamente tiver estado compartilhado entre muitos ramos.
Um prompt de exemplo para gerar um hook de fetch com loading/error embutidos via Suspense:
Create a `useUser(id)` hook using TanStack Query `useSuspenseQuery`,
fetching from /api/users/:id and returning a typed User.
Wrap UserCard in a <Suspense fallback> and an error boundary.
Don't create global state.
O useSuspenseQuery (TanStack Query v5) permite que um componente "suspenda" a renderização até os dados estarem prontos, empurrando o estado de loading para o <Suspense> pai em vez de espalhar if (isLoading) por toda parte — um código visivelmente mais limpo (veja a documentação do TanStack Query, 2026). A regra quando você delega: diga explicitamente "estado de servidor vai no Query, não enfie num store global", senão o Claude Code tende a superengenheirar com um store grande de que você não precisa.
Estilização & responsividade (design system, dark mode)
O Claude Code estiliza componentes rápido, mas vai fixar cores e espaçamentos no código de bom grado se você não o impedir. O jeito de forçá-lo a seguir seu design system: declare no CLAUDE.md que ele use só tokens/tema e depois seja específica no prompt.
- Fique nos tokens, não fixe valores no código: "Use classes Tailwind da configuração existente (espaçamento e cores do tema); não escreva valores hex crus." Com MUI v7: "estilize via
sxe o tema, usetheme.palette, sem cores fixadas no código." - Responsividade: nomeie os breakpoints que você quer — "uma coluna no mobile, mudando para duas colunas a partir de 768px."
- Dark mode: peça para ele usar as variáveis de tema existentes / as classes
dark:, e não construir um mecanismo de temas paralelo.
De novo, revise o diff e verifique se ele não enfiou uma biblioteca de UI nova. Se você quiser aprofundar no lado da estética e da experiência, o nosso texto sobre desenhar UI/UX com o Claude Code foca especificamente em construir interfaces polidas e consistentes.
Testes & acessibilidade para componentes
Esse é um grande ponto cego nos posts concorrentes: eles mencionam testes e a11y de passagem. Mas o ciclo de vida real de um componente inclui os dois. O Claude Code escreve testes bem justamente porque consegue rodá-los e continuar corrigindo até ficarem verdes.
Testes com Vitest + React Testing Library. Um prompt eficaz detalha os ramos a cobrir:
Write tests for UserCard with Vitest + React Testing Library:
- render loading state -> shows a skeleton
- render with a user -> shows name and role
- render with an error -> shows the error message
Run the tests and fix until they pass.
Um exemplo de caso de teste que ele gera:
it('shows a message when there is an error', () => {
render(<UserCard error="Failed to load" />);
expect(screen.getByText('Failed to load')).toBeInTheDocument();
});
Acessibilidade. É aqui que o Claude Code tende a esquecer, a menos que você o lembre. Assim que o componente rodar, entregue a ele uma tarefa direta: "Audite a acessibilidade do UserCard e corrija: garanta que os roles/aria estejam adequados, que a imagem do avatar tenha texto alt, que dê para operar pelo teclado e que o contraste de cor seja suficiente." Ele vai adicionar alt, colocar o aria-label/role certo e ajustar o foco. Ainda assim, verifique navegando de fato com o Tab pelo componente — a11y é fácil de "supor correto".
Otimização de performance (lazy loading, memo, bundle)
Conforme o app cresce, peça ao Claude Code para otimizar — mas de forma deliberada, não prematura.
- Code splitting por rota:
React.lazy+<Suspense>para dividir o bundle por página, carregando só o necessário (veja a documentação do React -lazy, 2026). Prompt: "Mova as rotas para React.lazy + Suspense para dividir o bundle." - Memoize onde importa:
useMemopara cálculos caros,memopara componentes que re-renderizam com frequência com props estáveis. Não envolva tudo — memoização descuidada pode custar mais do que economiza. - Encontre re-renders desperdiçados: "Encontre re-renders desnecessários em <lista de componentes> e sugira correções." Como o Claude Code consegue ler a árvore de componentes inteira, ele aponta a origem real em vez de adivinhar.
Um aviso franco: otimizar cedo demais deixa o código mais difícil de ler sem garantir que ele fique mais rápido. Só otimize depois de medir (tamanho do bundle, o React DevTools Profiler) e ter um problema de verdade.
Indo mais rápido com uma skill de frontend pronta (AgentKit)
Reescrever o CLAUDE.md, travar suas convenções React/TS, lembrar de "usar Suspense" e "seguir o tema" em cada projeto novo fica cansativo. Existe um atalho: usar uma skill de frontend pronta. Especificamente, a skill ak-frontend-development do AgentKit empacota padrões modernos de React/TS — componentes funcionais, React.lazy/Suspense, useSuspenseQuery, MUI v7, TanStack Router — para que o Claude Code os aplique de imediato, sem você redescrevê-los toda vez.
Para evitar confusão: o AgentKit aqui é um kit para o Claude Code (agentkit.best, a CLI ak) — não o "AgentKit da OpenAI". Para a visão geral primeiro, veja o que é o AgentKit e se ele vale a pena. Se skills são um conceito novo, leia o que é uma skill no Claude Code. A skill ak-frontend-development mora no Engineer Kit; o detalhamento completo está na nossa análise do Engineer Kit (com a skill ak-frontend-development).
Quer que o Claude Code construa React do jeito certo desde o começo? O Engineer Kit ($99, sem mensalidade listada no site) reúne mais de 60 skills, incluindo a ak-frontend-development, com garantia de devolução do dinheiro e atualizações vitalícias — uma boa pedida se você constrói frontends com frequência e quer pular a configuração repetitiva.
Quando o Claude Code constrói React mal? Modos de falha comuns
Honestidade é o que os concorrentes evitam. O Claude Code não é perfeito — conhecer seus pontos fracos de antemão te ajuda a guardar os lugares certos.
- Imports alucinados / versão errada de biblioteca. Ele pode importar de um pacote que você não instalou, ou usar a API de uma versão antiga (por exemplo, um padrão do React Query v4 enquanto seu projeto está no v5). Proteção: fixe as versões no
CLAUDE.mde deixe ele rodar typecheck imediatamente — um import quebrado aparece na hora. - Superengenharia. Um formulário simples pode acabar com uma máquina de estados inteira parafusada nele. Proteção: declare a complexidade que você quer ("mantenha simples, sem bibliotecas novas").
- Prop drilling. Passar props por muitas camadas em vez de usar context/composição. Proteção: peça uma revisão de arquitetura quando a árvore de componentes ficar profunda.
- Esquecer acessibilidade. Como observado acima — a11y é fácil de deixar cair por padrão, a menos que você peça.
- APIs desatualizadas do React. Às vezes ele recorre à busca de dados no estilo antigo com
useEffectem vez de Suspense/Query. Proteção: trave o padrão moderno noCLAUDE.md.
O fio comum em todas as proteções: revise o diff + rode testes/typecheck na hora, não aceite às cegas. Isso também te mantém longe do "AI slop" — código que roda, mas é bagunçado e difícil de manter.
Perguntas frequentes (FAQ)
O Claude Code roda npm run dev e os testes por conta própria?
Sim. O Claude Code roda comandos de terminal no seu projeto — iniciando o servidor de desenvolvimento, rodando testes, fazendo typecheck — e depois lê a saída para se corrigir. Crie o hábito de pedir para ele rodar testes/typecheck depois de cada mudança, para que os bugs apareçam cedo.
Posso usá-lo com Next.js ou só com Vite?
Os dois. O Claude Code não está preso a um framework específico; ele funciona com Next.js, Vite, Remix ou React Native, desde que o projeto esteja bem estruturado. Só declare o framework no CLAUDE.md para que ele siga as convenções certas (por exemplo, o App Router do Next.js).
Preciso saber React antes de usá-lo?
Você deveria. O Claude Code escreve código rápido, mas você precisa de conhecimento suficiente de React/TS para ler o diff, notar onde ele errou e definir as restrições certas. Uma pessoa totalmente iniciante ainda pode aprender, mas não aceite código que você não entende — essa é a fonte de bugs difíceis de desfazer.
Posso usá-lo junto com o Cursor ou o VS Code?
Sim. O Claude Code é uma CLI e roda ao lado de qualquer editor. Muita gente deixa o Claude Code cuidar do trabalho agêntico (gerar/editar muitos arquivos, rodar testes) enquanto mantém o VS Code aberto para ler e ajustar à mão. As duas ferramentas se complementam.
Como evito código desatualizado ou versões erradas de biblioteca?
Fixe versões específicas no CLAUDE.md, peça para ele rodar typecheck imediatamente e detalhe os padrões modernos que você quer (Suspense, TanStack Query v5). Quando vir que ele recorre a uma API antiga, aponte isso e diga para ele atualizar conforme a documentação mais recente.
Existe uma skill pronta para trabalho de frontend?
Sim. A skill ak-frontend-development do AgentKit (Engineer Kit, agentkit.best) empacota padrões modernos de React/TS para o Claude Code aplicar de imediato, em vez de você configurar convenções em cada projeto. Este é o AgentKit para o Claude Code, que é diferente do AgentKit da OpenAI.
Conclusão + próximos passos
O fluxo se resume a seis passos repetíveis: instalar + scaffold -> escrever o CLAUDE.md -> gerar componentes com prompts bem delimitados e sempre revisar o diff -> adicionar estado/dados com TanStack Query/Router -> testar e corrigir a11y -> otimizar a performance quando necessário. A chave não é "um prompt mais longo", e sim restrições claras + revisar o diff + rodar os testes na hora. A seguir: leia desenhar UI/UX com o Claude Code para elevar a interface, combine com construir uma API de backend com o Claude Code para um app full-stack e padronize o seu fluxo de git com o Claude Code na hora de commitar as mudanças. Ainda configurando seu ambiente? Volte para instalar o Claude Code. E se construir frontends é o seu trabalho do dia a dia, um bundle do AgentKit — agora $149 (de $198) com skills prontas vai te poupar uma boa dose de configuração repetitiva.