Pitch: Fiz um TCG (jogo de cartas) que roda dentro do VS Code — colecionando tecnologias de verdade. Vim contar os perrengues e chamar vocês pra testar
Passei os últimos meses construindo uma coisa meio maluca: um Trading Card Game
que roda dentro do VS Code. Chama TechDex TCG — em vez de colecionar Pokémon,
você coleciona tecnologias reais: Docker, React, Kubernetes, Rust, PostgreSQL, AWS…
cada uma com stats, raridade, classe e habilidades.
Abri pra quem quiser testar e, mais do que divulgar, vim compartilhar os perrengues
técnicos — que foi a parte que mais aprendi.
O que dá pra fazer
- Booster diário grátis (com pity timer: Lendária garantida a cada 20 sem sorte)
- TechDex — a "Pokédex" das 50 cartas, cada uma com ilustração exclusiva
- Quiz diário de tecnologia que dá cartas se você acertar
- Arena — monte um deck de 8 cartas e batalhe contra a IA, que pilota decks
reais de outros jogadores (tipo "fantasma") - Economia de Dust — queime repetidas e crafte as que faltam
- Trocas entre jogadores, XP, níveis, ranking e conquistas
Tudo sincroniza na nuvem via login com GitHub — começa numa máquina, continua em outra.
A stack
- Extensão: webview em React + Vite + TypeScript, conversando com o extension
host (Node) viapostMessage. - Backend: Node + Express + MongoDB (Mongoose), hospedado no Render.
- Auth: GitHub OAuth + JWT com renovação deslizante (sliding renewal).
- Landing: Vite/React na Vercel.
Os perrengues (a parte boa)
1. O quiz estava "viciado". Percebi que a resposta certa era quase sempre a mais
longa — e, pior, estava quase sempre na mesma posição. Dava pra gabaritar sem saber
o assunto. Tive que embaralhar as posições e reescrever os distratores das 145
perguntas pra ficarem plausíveis e do mesmo tamanho. Lição: viés em dados é sorrateiro.
2. O Render bloqueia SMTP de saída. Fiz um canal de feedback in-game que manda e-mail…
e batia timeout em toda porta SMTP (587, 465). O plano bloqueia as portas de e-mail.
Solução: troquei pra Resend (envio via HTTP/443, que ninguém bloqueia).
3. 28 MB de artes. As 50 ilustrações em PNG somavam ~29 MB — pesado pra grade da
coleção. Converti tudo pra WebP q82: caiu pra 4,5 MB (−84%) sem perda visível.
4. trust proxy e rate limit. Atrás do proxy do Render, o express-rate-limit
contava o IP errado (X-Forwarded-For) até eu setar app.set('trust proxy', 1).
5. Anti-spam no feedback. Login obrigatório + cooldown de 45s + limite diário por
usuário + rate limit por IP. Porque internet é internet.
Bora testar?
É grátis. Instala, loga com o GitHub e abre seu primeiro booster:
Marketplace: https://marketplace.visualstudio.com/items?itemName=gustavoweb.techdex-tcg
Site: https://techdex.com.br
Tem um botão de Feedback dentro do jogo — se achar um bug ou tiver ideia, manda por
lá que chega direto no meu e-mail. E aqui no TabNews também: crítica honesta é super
bem-vinda, tanto de game design quanto de código/arquitetura. O que vocês fariam
diferente?
Valeu quem for testar 🚀
Fonte: https://www.techdex.com.br/