Executando verificação de segurança...
7

12 mil devs, R$1.586 de receita, $0 de marketing: os 12 primeiros dias da Git City

Git City — Where Code Builds Cities

Duas semanas atrás eu vi um post no Twitter com a foto de um prédio que parecia os comentários do GitHub. Aquela imagem ficou na minha cabeça e me deu uma ideia simples: e se cada dev tivesse um prédio numa cidade? Quanto mais contribuições no GitHub, mais alto o prédio. Quanto mais repos, mais largo. Quanto mais stars, mais janelas acesas.

Nasceu a Git City (thegitcity.com).

Os números (12 dias, zero de marketing)

MétricaValor
Devs na cidade11.800+
Contas autenticadas (OAuth)5.700+
Visitantes únicos21.669
Pageviews56.623
Bounce rate12%
Taxa de conversão~48%
Receita totalR$1.586+
Campanhas de anúncio24
Marcas únicas12
Investimento em marketingR$0

Tudo orgânico. Sem ads, sem influencer pago, sem nada.

O dia 1: MVP em um dia

No dia 19 de fevereiro eu sentei e construí a primeira versão da Git City. Do npx create-next-app até o deploy na Vercel. Login com GitHub, prédios subindo na tela, tudo funcionando. Era tosco, não tinha a organização em espiral, os cálculos de altura eram simples, mas dava pra entrar, logar e ver seu prédio.

Postei no X. Bombou. Mais de 1 milhão de visualizações contando com os posts que 2 gringos fizeram.

E aí começou o caos bonito.

O caos dos primeiros dias

Um dev logou e adicionou o perfil com mais contribuições do GitHub inteiro. O cálculo de altura que eu tinha feito era linear: mais contribuições = mais alto, proporcional. O prédio do cara ficou tão alto que quebrou a cidade inteira. Os outros prédios viraram pontinhos.

Tive que refazer o cálculo. Implementei uma curva de potência com expoente 0.55, onde os primeiros commits fazem muita diferença mas depois o crescimento desacelera. Isso evita que um dev com 100k contributions tenha um prédio 100x maior que um dev com 1k.

E esse tipo de coisa aconteceu várias vezes. Cada leva de usuários trazia um bug novo, um edge case que eu não tinha pensado. A cidade foi sendo moldada pelos próprios devs que entravam nela.

O post no X viralizou. Gringos repostaram no Reddit e lá também explodiu. Aqui no TabNews também teve muita gente que veio através do post que eu fiz. Tudo ao mesmo tempo, tudo orgânico.

Dia 1 foi o começo, não o fim

A versão que existe hoje não tem nada a ver com o que eu deployei no primeiro dia. Cada dia depois do lançamento eu sentei e melhorei alguma coisa:

  • Refiz o layout da cidade (espiral com blocos 4x4, ruas, rio separando distritos)
  • Reescrevi o cálculo dos prédios 3 vezes até achar a fórmula certa
  • Adicionei instanced meshes para renderizar 11 mil prédios sem travar
  • Criei o atlas de texturas de janelas (2048x2048, 6 faixas de luminosidade)
  • Montei o sistema de ads, loja de cosméticos, achievements, raids, streaks
  • Implementei 24 migrações SQL no Supabase

O dia 1 me deu o MVP. Os 11 dias seguintes me deram o produto.

100% Claude Code

Eu uso o Claude Code direto no terminal. Não é copiar e colar prompt num chat. É uma conversa contínua onde o Claude tem acesso ao projeto inteiro: lê arquivos, edita código, roda comandos, cria migrações SQL.

Na prática:

  1. Descrevo o que quero em português. "Quero que o prédio tenha janelas acesas baseado nas stars do dev."
  2. O Claude explora o código, entende a arquitetura, e propõe a implementação.
  3. Ele escreve direto nos arquivos. Eu reviso, aprovo, e ele segue.
  4. Se dá erro, colo o erro e ele corrige. Sem precisar explicar contexto porque ele já tem todo o projeto na memória.

100% do código da Git City foi escrito pelo Claude. Eu sou o arquiteto, o PM e o QA. O Claude é o engenheiro.

Quando o bug do prédio gigante apareceu, eu literalmente descrevi o problema ("tem um dev com 200k contributions e o prédio dele tá quebrando a cidade") e o Claude propôs a curva de potência, implementou e testou. Esse ciclo de feedback rápido é o que permite construir e iterar nessa velocidade.

A stack

Frontend:     Next.js 16 (App Router) + React 19
3D Engine:    Three.js + @react-three/fiber v9 + drei v10
Database:     Supabase (PostgreSQL + Auth + RLS)
Pagamentos:   Stripe (USD) + AbacatePay (PIX)
Hosting:      Vercel
Estilo:       Tailwind CSS v4 + fonte pixel "Silkscreen"

Como os prédios funcionam

Cada prédio é calculado a partir de 3 métricas do GitHub:

Métrica do GitHubAfeta no prédioPeso
ContributionsAltura (35-600 unidades)55%
Public reposLargura (14-38 unidades)10%
Stars% de janelas acesas (5-95%)35%

Para renderizar 11 mil prédios sem travar o browser, usei instanced meshes. Em vez de criar 11 mil objetos 3D separados, crio um único mesh e digo ao GPU: "renderiza isso 11 mil vezes nessas posições com essas transformações". O atlas de texturas das janelas é um PNG de 2048x2048 com 6 faixas de luminosidade pré-calculadas, escritas direto em pixel com Uint32Array (10-50x mais rápido que canvas fillRect).

O layout é um espiral. O dev rank #1 fica no centro. Cada bloco tem 4x4 prédios, com ruas de 12 unidades entre eles. Um rio de 40 unidades separa dois distritos. Um sistema de LOD (Level of Detail) simplifica prédios distantes para manter o framerate.

O modelo de negócio (já faturando)

  1. Sky Ads (R$1.550) - Marcas compram aviões, dirigíveis e billboards que voam pela cidade. Self-serve, 9 a 99 por campanha. 24 campanhas de 12 marcas em 12 dias.

  2. Loja de cosméticos (R$36) - Itens visuais pro prédio: antenas, jardim no topo, aura neon, hologramas. 0.75 a 2.00 cada.

  3. Pixels (em breve) - Moeda virtual da cidade.

Gamificação

  • 20+ achievements (Bronze, Silver, Gold, Diamond)
  • Streaks com check-in diário
  • Kudos entre devs
  • Raids (PvP: atacar prédios de outros devs)
  • 10 distritos temáticos
  • Leaderboards por contributions, repos, stars, kudos e atividade

O que aprendi

  1. Lance tosco, melhore rápido. O MVP do dia 1 era feio e tinha bugs. Mas estava no ar. Se eu tivesse esperado ficar "pronto", teria perdido a janela de viralização.

  2. Usuários reais quebram tudo. Nenhum planejamento substitui gente real usando seu produto. O dev que adicionou o perfil com mais contributions do GitHub me ensinou mais sobre cálculos de escala do que qualquer artigo.

  3. IA amplifica, não substitui. O Claude escreve o código, mas eu preciso saber que instanced meshes existem, que RLS é importante, que preciso de um atlas de textura para performance. Se você não sabe o que pedir, a IA não vai adivinhar.

  4. O contexto é tudo. A diferença entre usar um chat de IA e o Claude Code é que ele está dentro do projeto. Sabe quais arquivos existem, qual a estrutura, quais dependências estão instaladas. Isso elimina 90% do vai-e-volta.

  5. Construa em público. Cada feature nova virava um post no X. As pessoas se engajam quando veem progresso real. E o feedback vem de graça.

Números que me surpreenderam

  • 12% de bounce rate - A média de SaaS é 40-60%. As pessoas entram e ficam.
  • 48% de conversão - Quase metade dos devs faz OAuth.
  • 1M+ de views no X - Um post. Sem impulsionamento.
  • R$1.586 em 12 dias - Receita real com $0 de marketing.

Veja seu prédio: thegitcity.com

Build em público: @samuelrizzondev no X

Carregando publicação patrocinada...