Voltar para o Blog
Construindo em Público1 / 10
Construindo em PúblicoParte 1 de 10

Como construímos uma feature de verdade, do zero ao deploy

4 min de leitura
Compartilhar
Construindo em Público

A distância entre "seria bom ter isso" e "isso está no ar" costuma ser o que separa uma empresa que envia software de uma que só fala sobre software. No ClubPetro, essa distância é curta de propósito. Time pequeno, monorepo único, e uma regra tácita: se a ideia é boa, ela vira código na mesma semana. Este post traça uma feature inteira, da conversa inicial ao deploy, mostrando onde a IA acelera de verdade e onde o julgamento humano não é negociável.

A ideia e o primeiro protótipo

Toda feature aqui começa com um incômodo concreto, não com um roadmap abstrato. Digamos que um CSM reclame que não consegue ver, num lugar só, quais redes de postos estão prestes a renovar contrato e quais estão com sinal de risco. Isso é o suficiente para começar.

O primeiro passo não é abrir o editor e sair digitando. É descrever o problema para o Claude e pedir um esboço: que dados já existem, que tabelas do Drizzle tocam nisso, que forma a tela poderia ter. Nessa fase a IA é ótima para explorar o espaço de soluções rápido — ela lê o schema, sugere três layouts possíveis, aponta que já existe um health score que dá para reaproveitar em vez de inventar métrica nova.

O que a IA não decide é o que importa de fato. Ela vai sugerir dez colunas na tabela; nós cortamos para quatro. Ela vai propor um filtro genial que ninguém vai usar; a gente descarta. O protótipo serve para pensar com as mãos, não para virar produto direto.

Do protótipo ao backend real

Com a forma decidida, o trabalho vira camadas. E aqui o monorepo paga a conta:

  • packages/domain — a lógica de negócio pura. "O que conta como rede em risco de não renovar" é uma função sem I/O, sem banco, sem HTTP. Só entra dado, sai decisão. Isso é testável de cabeça e não muda quando a UI muda.
  • packages/db — o acesso a dados via Drizzle. Aqui mora a armadilha favorita do nosso codebase: o schema TypeScript nem sempre reflete o banco real. Antes de escrever qualquer query, a gente confere a tabela de verdade. Confiar cegamente no tipo gerado já custou retrabalho mais de uma vez.
  • A procedure tRPC — a cola. Ela orquestra: chama o domínio, busca o dado, devolve pronto. O que ela não faz é calcular regra de negócio no meio do caminho. Router que calcula vira router que ninguém entende seis meses depois.

A IA escreve boa parte desse encanamento — o boilerplate de uma procedure nova, o mapeamento de colunas, os tipos Zod de entrada. É trabalho repetitivo e ela é rápida e correta nisso. Onde a gente segura o volante é na fronteira: validação de input, o que acontece quando o dado vem nulo, o que a query faz quando uma rede não tem health score ainda. Esses casos de borda são onde software quebra em produção, e são exatamente onde a IA, sem o contexto do negócio, chuta com confiança demais.

A UI e a hora da verdade

Frontend em Next.js 15, Server Components por padrão, Client Component só quando precisa de interatividade de verdade. A IA monta a tela rápido, mas a primeira versão quase sempre tem o mesmo problema: ela usa cor Tailwind crua (text-gray-500) em vez do token semântico (text-muted-foreground). Parece detalhe. Não é. Token semântico é o que mantém dezesseis áreas de produto parecendo o mesmo produto. Essa correção é sistemática e a gente não abre mão.

A tela sobe local, o CSM que reclamou olha, e aí vem o feedback que nenhum protótipo antecipa: "faltou mostrar há quanto tempo foi o último contato". Uma coluna. Cinco minutos. Mas é a diferença entre uma tela bonita e uma tela usada.

O deploy e o que fica

Quality checks locais — lint, typecheck, build — antes de qualquer push. PR aberto, CI roda os mesmos checks nos pacotes afetados mais uma revisão de código feita por IA em português. Uma aprovação humana, squash merge, e vai para produção no Cloud Run.

O ciclo inteiro cabe em dias, não em sprints. E o motivo não é a IA sozinha — é a combinação. A IA remove o atrito das partes mecânicas: o esboço, o boilerplate, o primeiro rascunho da tela. O humano fica com o que só humano faz bem aqui: decidir o que cortar, sentir o que o CSM realmente precisa, e desconfiar do caso de borda que a máquina ignorou.

Se você é o tipo de builder que gosta de ver a própria ideia no ar antes de esfriar, que não trava entre camadas e que sabe usar a IA como alavanca sem terceirizar o julgamento para ela — é exatamente esse ciclo que você vai viver aqui, toda semana.

Curtiu como a gente pensa?

É assim que trabalhamos todo dia.

Se esse jeito de pensar é o seu, vem construir com a gente — dá uma olhada nas vagas abertas.

Ver vagas