AI Dev Challenge · Edição Abr/2026

O Wrapped
do Challenge.

Duas semanas. 12 projetos. Centenas de horas, milhares de commits. Esta é a história — em números.

12
Projetos
2.114
Commits no main
12
Dias de batalha
role pra começar
Os 12 builders

Quem construiu tudo isso

Antonio Paulino
gabaritai
Prep pro ENEM com correção de provas por Vision AI
Bruno Viveiros
meritus
Badges e conquistas automáticas pra devs via GitHub
Felipe Richter
piano-man
Jogo rítmico pixel-art com músicas geradas por ML
Gabriel Quaresma
fight-club
Gestão de artes marciais com privacidade e AI
Jeferson Brito
sunlight
Micro-wellness PWA que encontra pausas no seu calendário
João Malheiros
helo
Assistente de negócios com AI — agendamento, chat e link page
Luan Gonçalves
alexandria
Gerenciador de assets RPG com classificação por Claude Vision
Marcelo Alexandre
lenu
Companheiro criativo com AI pra desenvolver ideias de conteúdo
Marcio Flavio
compound
Análise fundamentalista com AI pra investidores brasileiros
Miguel Marcondes
mother
Gates de compreensão pra PRs — entenda antes de dar merge
Rafael Martins
SDR-Radar
Radar de aviação ADS-B caseiro com dongle SDR e driver C
Samuel Flores
flowxide
Automação visual de workflows em Rust — canvas infinito com WASM
Capítulo 01 · Commits
2.114

commits no main em 12 dias

Somando todas as branches, foram 2.583 commits — uma média de 176,2 commits por projeto entregues no main.

589
Mais commits — helo
34
Menos commits — lenu
17×
Distância entre o 1º e o último
176,2
Média por projeto
Capítulo 02 · Ranking

Quem mais commitou

Commits no branch main (sem contar feature branches descartadas).

1heloJoão Malheiros · Rails 8
589
2flowxideSamuel Flores · Rust
401
3meritusBruno Viveiros · TS
287
4fight-clubGabriel Quaresma · TS
184
5sunlightJeferson Brito · Nuxt
128
6motherMiguel Marcondes · Next.js
128
7gabaritaiAntonio Paulino · Rails 8
91
8piano-manFelipe Richter · React
87
9SDR-RadarRafael Martins · Node + C
82
10alexandriaLuan Gonçalves · Next.js
53
11compoundMarcio Flavio · Rails 8
50
12lenuMarcelo Alexandre · Rails 8
34
Maratonista do challenge
helo entregou 589 commits no main com 10/12 dias ativos — 70% deles co-authored com Claude. flowxide vem logo atrás com 401 commits e 12/12 dias ativos — nenhum dia parado.
Quem mais usou branches
meritus abriu 71 branches, helo abriu 64 e mother abriu 33 — os três trabalharam PR-driven, não comitam direto no main.
Tartaruga zen
lenu fechou com 34 commits no main — o menor número, mas com 56% de proporção teste/produção e zero merge tumultuado.
Capítulo 03 · Aprofundamento

A anatomia dos commits

15h
Hora mais quente
31%
Commits à noite (18-23)
11%
Commits de madrugada
8%
Foram em finais de semana

Maior consistência

compound

9 dos 12 dias com commits, com a menor variância da turma (cv 0,48). Não teve pico, não teve apagão — só um Rails sólido sendo construído todo dia, devagar e sempre.

Maior concentração no prazo final

gabaritai

60% dos commits caíram nos 3 últimos dias. Em 10/04 sozinho foram 32 commits. Sprint final clássico — ENEM da vida real.

Mais explosivo no início

mother

77% dos commits nos 3 primeiros dias — incluindo 52 commits só em 30/03. Quem chegou pronto foi mother.

O guerreiro do fim de semana

fight-club

28% de todos os commits caíram em sábado/domingo. Seguido de sunlight (19%) e flowxide (15%). O resto da turma respeita o final de semana.

Capítulo 04 · Timeline

Velocity de cada projeto

Heatmap de commits por dia — de 30/03 (segunda) a 10/04 (sexta). Cada quadradinho é um dia. Cores mais intensas, mais commits.

30/331/31/42/43/44/45/46/47/48/49/410/4
helo589 commits · Sprint Final
flowxide401 commits · Explosivo no início
meritus287 commits · Equilibrado
fight-club184 commits · Consistente
sunlight128 commits · Sprint Final
mother128 commits · Explosivo no início
gabaritai91 commits · Sprint Final
piano-man87 commits · Sprint Final
SDR-Radar82 commits · Sprint Final
alexandria53 commits · Explosivo no início
compound50 commits · Sprint Final
lenu34 commits · Explosivo no início
menos mais
Consistente
fight-club — único com 8 dias ativos e nenhum pico acima de 25% do total. Cadência espalhada, sem buracos longos.
Sprint Final
helo (47% no fim), gabaritai (60%), SDR-Radar, compound, piano-man, sunlight — aceleraram nos últimos 3 dias.
Explosivo no início
mother (77% nos 3 primeiros), lenu (61%), flowxide (40%), alexandria (42%) — chegaram com tudo no D1.
Capítulo 05 · Linguagens

A stack do challenge

Ranking por linhas de código (excluindo testes/dependências).

TypeScript
63,0%7 projetos
Ruby (+ ERB)
24,1%4 projetos
Rust
9,4%1 projeto
JavaScript
1,7%incl. Vue (sunlight)
C
1,0%SDR-Radar
Python
0,7%scripts

Frontend favorito

React + Next.js

3 projetos foram com Next.js 16 (alexandria, mother, meritus) e mais 3 com React puro (fight-club, piano-man, SDR-Radar). 6 projetos = metade. Hotwire (compound, gabaritai, helo — 3), Phlex (lenu, helo — 2), Nuxt 4 (sunlight) e Leptos WASM (flowxide) completam.

Backend favorito

Rails 8 & Next.js

Rails 8 venceu: compound, gabaritai, lenu e helo — 4 projetos. Next.js server actions (alexandria, mother, meritus — 3). Fastify em meritus e SDR-Radar, AdonisJS em fight-club, Actix-web em flowxide.

Banco mais usado

PostgreSQL

7 dos 12 projetos rodam em PostgreSQL — alexandria, fight-club, flowxide, gabaritai, mother, meritus, SDR-Radar (este último em TimescaleDB!). compound, lenu e helo ficaram no SQLite (3 projetos). sunlight é PWA local-first com IndexedDB (Dexie).

Frameworks que apareceram só uma vez

Leptos · Nuxt 4 · RubyUI

Leptos (Rust no front via WASM, flowxide) e Nuxt 4 (Vue 3 fullstack, sunlight) apareceram uma vez só. Phlex (componentes Ruby puros) foi escolha de lenu e helo — virou dupla. RubyUI (component library Phlex-based) só em helo.

Capítulo 06 · Apostas técnicas

As stacks mais ousadas

Quem decidiu sair da zona de conforto e foi atrás de uma combinação que poucos teriam coragem de defender em standup.

🥇
flowxide
RUST WORKSPACE · LEPTOS WASM · ACTIX-WEB · TERRAFORM AWS · BEDROCK
A coragem completa: backend, executor de jobs, frontend canvas e shared types — tudo Rust, em workspace de 4 crates. O front é WASM compilado com Trunk usando Leptos. Infra em Terraform com módulos para CDN, RDS e systemd. AI via AWS Bedrock (claude-haiku-4-5). Zero "stack confortável", do começo ao fim. 401 commits em 12 dias — a stack mais complexa do challenge, de longe.
🥈
SDR-Radar
C + N-API · LIBUSB · TIMESCALEDB · GRAPHQL · WEBSOCKETS · LEAFLET
Construir um radar de aviação ADS-B em 1090 MHz usando um dongle SDR físico, com driver C escrito do zero falando direto em libusb, exposto via N-API para Node, decodificado em tempo real, persistido em TimescaleDB, transmitido via WebSocket + GraphQL e plotado num mapa Leaflet. Tem inclusive um diary contando o debug do tuner R820T vs R828D no I²C. Hardware-software de verdade, num challenge de software.
🥉
lenu
RAILS 8 · PHLEX · ACTIVERECORD-TENANTED · RUBY_LLM
Apostou num conjunto pouco trilhado de Rails: Phlex em vez de ERB, activerecord-tenanted para isolar cada usuário em banco SQLite próprio, e ruby_llm para abstrair o provider de LLM. É Rails 8, mas com escolhas que poucos tomam — multitenancy físico, views como classes Ruby puras, e uma camada LLM idiomática.

Menções honrosas: sunlight (Nuxt 4 + Cloudflare Workers + Web Push + Dexie offline-first PWA), mother (Inngest + Better Auth + GitHub App + AI Provider swappable).

Capítulo 07 · Padrões

Como esse pessoal organiza código

10
Com Docker / Containerização
9
Com CI/CD configurado
11
Com lint/format configurado
5
Com E2E (Playwright)

Arquiteturas mais vistas

  • 📐 Clean / Hexagonal — alexandria (domain/application/infrastructure)
  • 📐 Layered Service Objects — compound, gabaritai, lenu, fight-club
  • 📐 Workspace / Monorepo — flowxide (cargo), meritus (turbo), SDR-Radar (npm)
  • 📐 Next App Router padrão — mother, alexandria, meritus/web
  • 📐 Rails MVC clássico — compound, gabaritai (com ViewComponent + Pundit)

O fundamental que (quase) todos fizeram

  • 🐳 Docker — 10/12 (faltou flowxide e sunlight)
  • 🤖 CI/CD GitHub Actions — 9/12 (faltou meritus, piano-man, sunlight)
  • 🎨 Lint / Format — 11/12 (flowxide usa cargo fmt/clippy por padrão, sem config custom)
  • 🗄️ ORM em vez de SQL raw — 11/12 (Prisma, Drizzle, Active Record, SQLx, Lucid)
  • 📚 README detalhado — 12/12 (todos)
SQL raw vs ORM
Apenas SDR-Radar usa SQL com mais frequência — pelo lado do TimescaleDB e Drizzle como query builder. Todo o resto usa ORMs maduros (Prisma, Active Record, Drizzle, SQLx).
E2E e Playwright
fight-club, meritus, piano-man, sunlight e o frontend de SDR-Radar rodam Playwright. piano-man tem mais E2E que muitos backends têm de unitários.
Pra onde foi deployado
6 destinos diferentes em 12 projetos: Vercel (mother), Cloudflare Workers (sunlight), Railway (SDR-Radar), Render (meritus, fight-club), Kamal (compound, lenu, gabaritai, helo) e AWS via Terraform (flowxide). Quase ninguém repetiu.
Capítulo 08 · AI no Produto

Como AI aparece pro usuário final

11
Projetos com AI no produto
5
Providers diferentes
10+1
LLM + ML de áudio
1
Sem AI no produto

11 dos 12 projetos incorporaram alguma forma de AI no produto — sendo 10 com LLM (Anthropic, Google, Groq, OpenRouter) e 1 com ML de áudio (piano-man, via Spotify basic-pitch). Apenas SDR-Radar ficou fora.

Projeto Provider Modelo Categoria de uso
alexandria Anthropic claude-haiku-4-5 (Vision) Classificação de imagem
compound Groq llama-3.3-70b-versatile (+ Ollama) Recomendação financeira
fight-club Anthropic claude-sonnet-4-6 Dicas de treino personalizadas
flowxide AWS Bedrock claude-haiku-4-5 (via Bedrock) Geração de workflows
gabaritai Google gemini-3.1-flash-lite (+ Ollama) Correção de provas (Vision) + recomendação
lenu Anthropic via ruby_llm (configurável) Desenvolvimento de ideias
meritus OpenRouter flux-1.1-pro (Black Forest Labs) Geração de imagem
mother Anthropic claude-sonnet-4 (swappable) Análise de PR / compreensão
piano-man Spotify ML basic-pitch + librosa (ONNX) Transcrição de áudio → notas
helo Google gemini-2.5-flash (via ruby_llm + activeagent) Assistente de negócios conversacional
SDR-Radar n/a Sem AI no produto
sunlight Google gemini-2.5-flash Insights de bem-estar
Pra que serviu a AI
8 categorias em 11 projetos: classificação (alexandria), recomendação (gabaritai, fight-club, compound, sunlight), compreensão de código (mother), ideação (lenu), assistente conversacional (helo — 21 tools, 3 personas), geração de workflow (flowxide), geração de imagem (meritus), transcrição de áudio (piano-man).
Modelos rápidos venceram
6 dos 11 foram de modelos lite/fast: Haiku 4.5 (alexandria, flowxide, lenu) e Gemini Flash (gabaritai, sunlight, helo). Os outros 3 LLMs foram mid-tier: Sonnet (fight-club, mother) e Llama 70B via Groq (compound). Ninguém usou Opus ou GPT-4 no produto.
OpenAI sumiu da festa
Nenhum projeto integrou GPT-4 ou OpenAI direto. Anthropic (5), Google (3 — gabaritai, sunlight, helo), Groq+Llama (1), Flux via OpenRouter (1) e Spotify ML (1) cobriram tudo. meritus usa endpoint OpenAI-compatible, mas o modelo é Flux, não GPT.
Como conectaram com a AI
SDK direto: 6 projetos. Via proxy (Bedrock, OpenRouter): 2 (flowxide, meritus). Abstração custom: 3 (lenu e helo via ruby_llm, compound via adapter OpenAI-compatible). mother é o único com interface swappable de provider. helo usa activeagent (framework de agentes Rails).
AI como criadora de conteúdo
A maioria usa AI pra assistir ou recomendar. Apenas 2 usam AI pra gerar o conteúdo do produto: meritus cria a arte das medalhas (Flux) e piano-man cria as músicas jogáveis (basic-pitch). AI no centro, não no rodapé.
Texto domina, mas não só
Texto: 9 projetos. Imagem: 3 — alexandria (Claude Vision, input), gabaritai (Gemini Vision, input de folhas de prova e PDFs) e meritus (Flux, output). Áudio: 1 (piano-man, input). Multimodal real: alexandria e gabaritai.
Capítulo 09 · Testes

Quem testou e quem rezou

Quanto código de teste cada projeto escreveu em relação ao código de produção. Não significa necessariamente % de cobertura.

1meritusBruno Viveiros · 7.655 / 8.946
85,6%
2fight-clubGabriel Quaresma · 18.027 / 21.554
83,6%
3compoundMarcio Flavio · 4.098 / 5.741
71,4%
4gabaritaiAntonio Paulino · 4.757 / 7.036
67,6%
5sunlightJeferson Brito · 2.713 / 4.397
61,7%
6motherMiguel Marcondes · 16.167 / 26.730
60,5%
7lenuMarcelo Alexandre · 2.540 / 4.523
56,2%
8piano-manFelipe Richter · 2.400 / 6.724
35,7%
9SDR-RadarRafael Martins · 4.462 / 13.062
34,2%
10heloJoão Malheiros · 8.126 / 24.902
32,6%
11alexandriaLuan Gonçalves · 1.281 / 7.481
17,1%
12flowxideSamuel Flores · 2.334 / 17.763
13,1%

Melhor proporção

meritus

85,6% de proporção teste/produção. 7.655 linhas de teste para 8.946 de produção. Vitest no API, Playwright no web, MSW pra mockar HTTP. Mostra disciplina.

Pior proporção

flowxide

13,1%. 2.334 linhas de teste pra 17.763 de produção. A contagem engana: Rust usa testes inline (#[cfg(test)]), então estão misturados nos mesmos arquivos. São 107 funções de teste — incluindo 52 testes de integração com banco real via sqlx::test.

Média do grupo

49,5%

A média ponderada do challenge. 6 projetos ficaram acima de 60% de proporção teste/produção.

Total de linhas de teste

73.660

Somando todos os projetos. Equivale a 1.472 linhas de teste por dia de challenge — bom indicador da seriedade técnica do grupo.

Capítulo 10 · Você sabia?

As curiosidades do challenge

Quem comitou de madrugada?
fight-club teve 23 commits entre 00h e 02h nos dias 04 e 05/04 (sábado e domingo). flowxide também teve 30+ commits noturnos. piano-man, alexandria e SDR-Radar dormiram cedo — zero madrugada.
O dia mais agitado do challenge
Foi 7 de abril (segunda-feira) com ~225 commits somando todos os projetos — puxado por helo (145 commits nesse dia) e fight-club (31). O segundo lugar ficou com 1º de abril (181), quando flowxide sozinho fez 88.
A hora preferida pra commitar
15h foi o pico (112 commits) — pós-almoço da galera. Em segundo, 21h com 103 commits — o segundo turno informal.
O projeto com mais código de produção
mother com 26.730 linhas, seguido de helo (24.902), fight-club (21.554) e flowxide (17.763 de Rust). helo quebrou o padrão dos Rails — Phlex + 21 AI tools dá volume.
O rei das branches
meritus abriu 71 branches, helo abriu 64, seguidos por compound (45) e mother (33). Esses quatro trabalharam PR-driven puro.
Os co-authored-by recordistas
mother teve 769 commits "Co-Authored-By: Claude", seguido de helo com 426 (70% dos commits) e piano-man com 69. É a assinatura do Claude Code rodando full automation.
i18n nativo
compound e fight-club shipparam com i18n PT-BR + EN de saída — não como afterthought. compound vai além e mantém pt-BR como default.
Quem levou segurança a sério?
fight-club com AES at-rest, opaque tokens, audit logs e GDPR completo. compound com WebAuthn/Passkey. mother com Better Auth. Não foi pouca coisa pra 12 dias.
O único com diary
SDR-Radar manteve uma pasta diary/ com 3 entradas detalhadas — narrando hardware, debug do tuner R820T/R828D e processamento de sinal. Engenharia documentada como literatura.
O único com AI que não é LLM
piano-man usa o modelo basic-pitch da Spotify (ML rodando em ONNX) pra transcrever áudio em notas jogáveis — pipeline em Python com librosa pra BPM. Cada música do jogo passou por essa esteira de ML. Único projeto fora do padrão LLM.
FIM
obrigado.

12 projetos · 12 dias · um único objetivo:
provar que dá pra construir grande, com AI ao lado.

Uma turma que escreveu 230.000+ linhas de código, abriu 290 branches, criou 73.000+ linhas de teste, configurou 10 Dockerfiles, testou em 5 ferramentas E2E, e provou que duas semanas de challenge podem render produto de verdade. Até a próxima edição. 🚀