O que o Vinext ensina sobre desenvolvimento com IA

Principais Pontos
  • O Vinext (reescrita do Next.js pela Cloudflare) teve quase todas as linhas escritas por IA, mas o "quase" é a parte mais importante. Houve intervenção constante de uma pessoa
  • O processo começou com horas de planejamento arquitetural antes de uma única linha de código ser gerada
  • Mais de 1.700 testes unitários e 380 testes E2E criaram uma rede de segurança determinística ao redor de um processo probabilístico
  • Code review automatizado por agentes de IA reduziu gargalos de pessoas, mas revisão final por uma pessoa continuou essencial para corrigir erros "confiantes"
  • O projeto custou aproximadamente US$ 1.100 em tokens e mais de 800 sessões, amplificando a capacidade do profissional em ordens de grandeza

Se você ainda não leu o artigo da Cloudflare sobre o Vinext, recomendo fortemente. É talvez o melhor caso prático que temos até agora de desenvolvimento assistido por IA em escala. Uma reescrita do Next.js feita em uma semana, onde quase todas as linhas de código foram escritas por IA.

Mas o "quase" é a parte mais importante da frase. Ainda precisamos saber programar para assumir o volante em determinados momentos. E repare: não foi um "CRUDzinho". Houve necessidade de intervenção constante.

Vamos destrinchar o que de fato aconteceu ali.

Planejamento antes de tudo

"O processo começou com um plano. Passei algumas horas discutindo com o Claude no OpenCode para definir a arquitetura: o que construir, em qual ordem e quais abstrações usar. Esse plano se tornou a nossa estrela-guia."

Não foi só chegar e pedir: "Reescreva o Next. Make no mistakes."

Houve horas de trabalho definindo arquitetura, ordem de construção e abstrações. Ele fez o que faz de melhor: decidir o que construir e como estruturar. A IA só entrou depois que a direção estava clara.

Determinismo como escudo contra a probabilidade

"Mais de 1.700 testes Vitest, 380 testes de ponta a ponta (E2E) com Playwright, checagem completa de tipos TypeScript via tsgo e linting via oxlint. A integração contínua (CI) executa tudo isso em cada pull request."

A única coisa que consigo pensar aqui: determinismo, determinismo, determinismo.

LLMs são ferramentas probabilísticas. Dado o mesmo prompt, podem produzir resultados diferentes. A forma de mitigar isso é cercar o processo com etapas que sempre executam da mesma forma. Cada PR passava por uma bateria de verificações determinísticas. Isso não elimina a natureza probabilística do LLM, mas cria uma rede de segurança ao redor dele.

Insight

"A arte de usar LLMs em produção não é confiar nelas cegamente, mas cercá-las de processos determinísticos que revelam quando elas erram."

O desafio que fica é: como tornar outros processos mais determinísticos, inclusive o code review? Ferramentas como SonarQube, linters semânticos e agentes de revisão automatizada são parte da resposta.

Code review automatizado (mas não cego)

"Também conectamos agentes de IA para revisão de código. Quando um PR era aberto, um agente o revisava. Quando os comentários da revisão voltavam, outro agente os resolvia. O ciclo de feedback foi quase todo automatizado."

Note que não era o "coleguinha" fazendo todos os code reviews, porque ele seria um gargalo. O ciclo de feedback foi quase todo automatizado. Mas, e esse é um "mas" importante:

"Não funcionava perfeitamente todas as vezes. Houve PRs que estavam simplesmente errados. A IA implementava com confiança algo que parecia certo, mas que não correspondia ao comportamento real do Next.js. Eu precisei corrigir o curso regularmente."

Não foi confiança cega e merge sem review. Os PRs passavam primeiro por uma revisão automatizada intensiva e correção automatizada antes dele aceitar o PR. Mais uma camada de determinismo reduzindo os efeitos da probabilidade.

O dev estava no controle

"Decisões de arquitetura, priorização, saber quando a IA estava indo para um beco sem saída: tudo isso dependia de mim. Quando você dá à IA uma boa direção, contexto e diretrizes, ela pode ser muito produtiva. Mas você ainda precisa pilotar."

Primeiro, ele dava uma boa direção, preparava o contexto e as diretrizes de forma exaustiva. Só depois a IA fazia o trabalho pesado.

Com mais de 800 sessões e aproximadamente US$ 1.100 em tokens, o projeto foi concluído. Mesmo considerando o salário desse profissional, saiu muito barato quando avaliamos o resultado. A capacidade excepcional dessa pessoa foi amplificada em várias ordens de grandeza.

Amplificada. Não substituída.

As lições práticas

O que funcionou
  • Horas definindo o que construir antes de pedir à IA que construísse
  • Testes, CI, linting, type checking como rede de segurança
  • Agentes automatizados + revisão final por uma pessoa
  • Corrigindo o curso quando a IA ia para um beco sem saída
O que não fazer
  • PRs "confiantes" estavam simplesmente errados em alguns casos
  • Sem arquitetura clara, a IA produz código que parece funcionar mas não funciona
  • A IA é a ferramenta mais poderosa que já tivemos, mas ainda precisa de um piloto

O Vinext não é uma prova de que "a IA vai substituir os devs". É uma prova de que um profissional excepcional, com as ferramentas certas e os processos certos, pode fazer o trabalho de uma equipe inteira. A diferença está no profissional, não na ferramenta.

Insight

"A IA é o novo multiplicador. Mas zero vezes qualquer número ainda é zero."


Me siga no LinkedIn

Vamos trocar ideias sobre engenharia de software, arquitetura e liderança técnica.

Conectar no LinkedIn →