Skip to content

deyvin/poc-rails-nest-next

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Qual Framework Gasta Menos Token de IA?

POC comparando consumo de tokens do Claude Code ao gerar um CRUD completo nos três frameworks mais usados: Ruby on Rails, NestJS e Next.js.

Assista ao vídeo: youtube.com/watch?v=QiGh9M_EZWs Post original no LinkedIn: linkedin.com/posts/deyvidnascimento


Estrutura

poc-rails-nest-next/
├── poc-rails/    # Ruby on Rails (--api, SQLite)
├── poc-nest/     # NestJS (CLI padrão)
└── poc-nextjs/   # Next.js (TypeScript, App Router)

Metodologia

Mesmo prompt colado identicamente nos três frameworks. Mesmo modelo (claude-sonnet-4-6). Sessão limpa. Zero intervenção.

Fase 1 — Inicialização

# Rails
rails new poc-rails --api --database=sqlite3 --skip-javascript --skip-asset-pipeline

# NestJS
npx @nestjs/cli new poc-nest --package-manager npm

# Next.js
npx create-next-app@latest poc-nextjs --typescript --eslint --app --src-dir --no-tailwind

Fase 2 — Backend (prompt idêntico nos 3)

Crie um CRUD completo para o recurso "Task" com os campos:
- title (string, obrigatório, máximo 255 caracteres)
- description (text, opcional)
- status (enum: pending, in_progress, done — padrão: pending)
- due_date (date, opcional)

Requisitos:
- Rotas REST completas (index, show, create, update, delete)
- Validações nos campos obrigatórios
- Use SQLite como banco de dados
- Testes automatizados cobrindo os casos principais
- Seed com 5 tarefas de exemplo

Fase 3 — Frontend (prompt idêntico nos 3)

Adicione uma interface web para o CRUD de Tasks que já existe.

Requisitos:
- Listagem com filtro por status
- Formulário de criação e edição
- Botão de deletar com confirmação
- Layout simples e funcional, sem framework CSS externo
- Tudo conectado ao backend que já existe

O Rails foi criado com --api (sem views). O Claude precisou criar o frontend do zero — intencional. Nivela o campo.


Resultados

Backend

Métrica Rails NestJS Next.js
Custo total $0,26 $0,59 $0,68
Tokens output 5,2k 17,6k 15,1k
Cache read 407,1k 687,2k 1,1M
Cache write 15,4k 30,4k 34,6k
Linhas adicionadas 232 477 463
Tempo API 1m 29s 3m 22s 3m 30s
Rodou sem erro? Sim Sim Sim

Frontend

Métrica Rails NestJS Next.js
Custo total $0,58 $1,11 $0,73
Tokens output 23,8k 51,4k 18,7k
Cache read 394,1k 812,8k 1,1M
Cache write 27,4k 25,0k 27,6k
Linhas adicionadas 721 1.018 1.019
Tempo API 5m 11s 9m 46s 4m 00s
Rodou sem erro? Sim Conflito de porta (resolvido) Sim

Total (Backend + Frontend)

Métrica Rails NestJS Next.js
Custo total $0,84 $1,70 $1,41
Tokens output 29,0k 69,0k 33,8k
Linhas totais 953 1.495 1.482
Tempo API total 6m 40s 13m 08s 7m 30s

Multiplicadores

Comparação Backend Total
NestJS vs Rails 2,3x mais caro 2,0x mais caro
Next.js vs Rails 2,6x mais caro 1,7x mais caro
NestJS vs Next.js Nest 20% mais caro

Conclusão

A tese inicial era: framework com opinião gasta menos token. O Rails provou isso. O Nest quebrou o padrão.

O Nest tem opinião sobre estrutura — módulos, controllers, services, DTOs — mas cada "opinião" gera um arquivo novo, uma classe nova, um decorator novo. A IA obedece e produz boilerplate proporcional: 51k tokens de output só no frontend, quase 3x o Next.

A conclusão real: não é framework com opinião que economiza token. É framework com convenção madura e linguagem densa. O Rails comprime: uma migration são 5 linhas, um model com validação são 3. O Nest organiza, mas é verboso. E verbosidade custa token.

Na era da IA escrevendo código: linguagem densa + convenção madura = menos token.


Setup local

# Rails
cd poc-rails
bundle install
rails db:setup
rails server

# NestJS
cd poc-nest
npm install
npm run start:dev

# Next.js
cd poc-nextjs
npm install
npm run dev

Feito por @manodeyvin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors