1. Desafio de Codificação de IA: Clonando o Twitter [1]

Três desenvolvedores usaram diferentes IAs (Claude Code, Antigravity e Cursor) para criar um clone do Twitter em 1 hora e meia, com o objetivo de comparar qual IA codifica melhor.

1.1. As Regras do Desafio [10]

  1. IA Definida: Cada desenvolvedor usou uma IA específica e não podia trocá-la ou conversar com outras IAs [10].
  2. Tecnologias Livres: A stack, linguagem de programação e framework eram de livre escolha [12].
  3. Funcionalidades do Clone do Twitter: O clone deveria incluir um feed de posts, funcionalidades de curtir, retweetar, seguir pessoas, perfil de usuário e um algoritmo de feed [13].
  4. Tempo e Uso da IA: Os desenvolvedores tiveram 1 hora e meia para programar e podiam usar a IA para tudo, incluindo tirar dúvidas, depurar, resolver problemas e codificar [14].

1.2. Estratégias Iniciais dos Desenvolvedores [18]

  1. Luiz (Cloud Code) [18]
    1. Ele já havia usado a versão gratuita do Cloud (Cloud Opus) e estava interessado em ver como a versão paga se sairia na criação de um sistema do zero, especialmente em relação ao entendimento de contexto [19].
  2. João (Cursor) [23]
    1. Sua estratégia era fornecer um contexto inicial do projeto para o Composer (a IA do Cursor) e, em seguida, passar uma base de conhecimento sobre o que precisaria ser desenvolvido para o clone do Twitter [24].
  3. Ricardo (Antigravity) [25]
    1. Ele veio preparado, tentando usar as melhores funcionalidades do Antigravity, como regras e instruções, mas não tinha certeza do resultado final [26].
    2. Ele começou dando um contexto sobre o clone do Twitter, usando o Nest como framework, e especificou as ações necessárias, como seguir usuários e curtir posts [30].
    3. Ele sugeriu React para o frontend, Node para o backend e PostgreSQL para o banco de dados, além de passar um modelo de dados detalhado para usuários, posts, likes e APIs [35].
    4. Ricardo pediu para a IA criar a estrutura do projeto com a arquitetura principal, especificando menos funções para simplificar, e criou um arquivo features.md para descrever o que queria [42].
    5. Ele se limitou a usar uma stack de Node.js (Nest e Fastify no backend, React no frontend) por ser mais compatível com o Antigravity [45].

2. Avaliação dos Resultados Finais [48]

Os desenvolvedores apresentaram os resultados de seus clones do Twitter, com o Antigravity e o Cursor entregando versões funcionais, enquanto o Claude Code enfrentou problemas técnicos.

2.1. Desempenho do Antigravity (Ricardo) [48]

  1. Processo de Desenvolvimento [48]
    1. A IA gerou um plano de desenvolvimento que Ricardo revisou e comentou, e a implementação começou rapidamente [48].
  2. Dificuldades com a IA [67]
    1. Ricardo notou que o Antigravity não era muito bom em lembrar de coisas, exigindo que ele fosse muito específico e repetisse prompts para reforçar informações, mesmo usando o Gemini 3.1 Pro [67].
  3. Funcionalidades Implementadas [92]
    1. O clone do Twitter do Antigravity apresentava uma tela de login e permitia a criação de contas [97].
    2. O feed exibia tweets de todos os usuários, e havia uma opção para ver apenas os tweets de quem o usuário seguia [109].
    3. Era possível seguir outros usuários, e o feed atualizava para mostrar os tweets em ordem cronológica [112].
    4. A funcionalidade de retweet estava presente, e as notificações funcionavam, mostrando quando um usuário era retweetado [127].
    5. O perfil do usuário permitia editar o nome de usuário, mudar a senha e definir uma imagem de perfil [165].
  4. Problemas e Limitações [175]
    1. Ricardo especificou que o like deveria ter contagens, mas esqueceu de especificar o comportamento quando o usuário atual não deu like [176].
    2. Não era possível clicar no nome da pessoa para ir ao perfil, e as respostas aos tweets eram tratadas como comentários, não como outros tweets navegáveis [178].
    3. A IA não entendeu que deveria ser um clone do Twitter em alguns aspectos, mesmo com a especificação [185].
  5. Aspectos Visuais [188]
    1. Ricardo não especificou o layout, e a IA montou o frontend sozinha, resultando em um visual que lembrava o Twitter de 2019 [188].
    2. Ele pediu para não usar Tailwind, mas sim Bootstrap clássico, e a IA fez um dark mode exclusivo [191].
  6. Conclusão de Ricardo [202]
    1. Ricardo ficou surpreso e satisfeito com o resultado, pois o backend e o frontend funcionaram, entregando um clone básico do Twitter [202].

2.2. Desempenho do Cursor (João) [208]

  1. Layout e Funcionalidades [208]
    1. O layout do clone do Cursor era mais parecido com o Twitter atual, pois a IA conseguiu usar o código aberto de layout que o Twitter liberou em 2023 [211].
    2. Era possível clicar em um tweet para carregá-lo, seguir e deixar de seguir pessoas, e o perfil do usuário exibia informações, embora o layout do perfil fosse um pouco diferente do Twitter original [221].
    3. Havia opções para explorar, curtir, retweetar, e até uma mensagem de "mensagens em breve" e "salvas" [235].
    4. A funcionalidade de retweet permitia retweetar o tweet ou adicionar um comentário [248].
  2. Problemas e Limitações [251]
    1. A IA teve problemas para gerar a interface do usuário (UI), como puxar a logo do Twitter e elementos para que ficasse minimamente parecido, exigindo que João referenciasse novamente [254].
    2. Os ícones gerados pela IA eram "viajados" e pareciam imagens geradas por IA de dois anos atrás, mas João precisou buscar ícones similares sem passar uma biblioteca [255].
    3. Não era possível criar uma nova conta, apenas a criação inicial da conta funcionou, mas deslogar e criar uma nova não [260].
    4. O limite de caracteres para posts foi definido em 140, mas era possível "hackear" o frontend para 300, embora o backend mantivesse o limite [268].
    5. A funcionalidade de deletar tweets não funcionou, apenas exibiu uma modal padrão do navegador [285].
    6. A exibição dos tweets era por ordem cronológica dos mais recentes, e não houve tempo para implementar um algoritmo de feed [294].
  3. Conclusão de João [318]
    1. João ficou satisfeito com a entrega final, destacando o Composer do Cursor por suas ferramentas úteis que permitiam dividir a IA em subagentes dedicados a prompts, entendimento de perguntas, desenvolvimento e correção [319].

2.3. Desempenho do Claude Code (Luiz) [322]

  1. Problemas Técnicos [322]
    1. Luiz tentou dar um passo a mais, fazendo o sistema sem contêineres, o que causou problemas no banco de dados e no backend, impedindo a conexão [323].
    2. Ele tentou arrumar nos últimos 5 minutos, mas não conseguiu, resultando em um sistema não funcional [325].
  2. Funcionalidades Não Testadas [327]
    1. O sistema tinha testes automatizados e estava funcionando antes dos problemas com os contêineres, mas não pôde ser testado ao vivo [328].
  3. Layout e Expectativas [339]
    1. O layout da tela de login não se parecia com o Twitter, o que gerou decepção [339].
  4. Causa dos Problemas [361]
    1. Luiz explicou que "deu um passo maior que a perna", tentando complicar o que não precisava, como usar fila de Redis para mensageria e fazer em contêineres, porque a IA estava indo muito fácil e rápido [361].
  5. Planos Futuros [368]
    1. Luiz prometeu terminar o projeto e disponibilizá-lo no GitHub com prints, sem mudar o layout, apenas fazendo-o funcionar [368].