Cole seu código. Receba uma avaliação brutal e honesta.
Projeto construído durante o NLW da Rocketseat, evoluído até uma versão completa com IA, banco de dados e ranking em tempo real.
O DevRoast analisa trechos de código com IA e devolve um resultado estruturado com nota, veredito, pontos críticos e sugestão de melhoria.
Além da análise individual, a aplicação mantém um leaderboard com os códigos mais "vergonhosos" já enviados.
- Next.js 16 (App Router, React 19, TypeScript)
- Tailwind CSS v4
- Base UI (
@base-ui/react) para primitives - tailwind-variants para variantes de componentes
- Shiki (tema
vesper) para syntax highlight - Number Flow (
@number-flow/react) para animação de métricas
- tRPC v11 com
@trpc/tanstack-react-query - TanStack React Query v5
- Drizzle ORM + driver
postgres - PostgreSQL 16 (Docker)
- Vercel AI SDK (
ai) - Google Gemini via
@ai-sdk/google(modelo atual:gemini-2.5-flash)
- Biome (lint + format)
- Drizzle Kit (migrations / studio)
- pnpm
- Editor com linguagem detectada automaticamente e seletor manual
- Roast mode (sarcasmo máximo) com prompt específico para resposta mais agressiva
- Envio de análise via Server Action com tratamento de erro
- Análise estruturada por IA com:
- score de 0 a 10
- veredito (
needs_serious_helpatéclean_code) - roast quote
- suggested fix
- 2 a 6 itens de análise por severidade (
critical,warning,good)
- Persistência completa no banco (
roasts+analysis_items) - Página de resultado por ID (
/roast/[id]) com:- score ring
- veredito e quote
- código original destacado
- cards de análise detalhada
- bloco com sugestão de correção
- Leaderboard na home (preview com top 3)
- Leaderboard completo (
/leaderboard) com top 20, total de submissões e média de score - Métricas globais animadas com React Query + Number Flow
- Estados de loading e fallback de erro em seções assíncronas
- Node.js 20+
- pnpm
- Docker (para subir o PostgreSQL local)
pnpm installpnpm db:upCrie um arquivo .env na raiz com:
DATABASE_URL=postgres://devroast:devroast@localhost:5432/devroast
GOOGLE_GENERATIVE_AI_API_KEY=sua_chave_aquipnpm db:migratepnpm db:seedpnpm devAbra http://localhost:3000 no navegador.
pnpm dev # inicia em desenvolvimento
pnpm build # build de produção
pnpm start # sobe build de produção
pnpm lint # biome check
pnpm format # biome format --write
pnpm check # biome check --write
pnpm db:generate # gera migration
pnpm db:migrate # aplica migrations
pnpm db:push # push direto no schema (dev)
pnpm db:studio # abre Drizzle Studio
pnpm db:up # sobe PostgreSQL via Docker
pnpm db:seed # popula banco com dados de teste