BMJ TCG
Seis card games, um banco de dados em português e um metagame que se recalcula sozinho.
- Cliente
- Projeto próprio
- Segmento
- Mídia e produto · Card games
- Ano
- 2026
- Escopo
- Produto · Arquitetura de dados · UX/UI · Desenvolvimento · SEO · Automação
O problema
O jogador brasileiro de card game competitivo vivia com a informação espalhada: grupo de WhatsApp, planilha solta e site gringo. Quem queria saber o que estava ganhando torneio tinha que ler inglês e garimpar decklist em três lugares diferentes. Não existia um lugar só com carta traduzida, resultado de torneio e metagame calculado.
O problema real não era falta de notícia. Era falta de dado organizado. Escrever matéria sobre o meta resolve por um dia; deixar o meta consultável resolve todo dia.
O que eu fiz
Montei o site como hub com um subdomínio por jogo, cada um com a cor canônica do próprio jogo e o mesmo esqueleto de navegação: metagame, torneios, agenda, galeria de cartas, deckbuilder. O jogador de Pokémon e o de Yu-Gi-Oh! encontram a mesma coisa no mesmo lugar, sem aprender duas interfaces.
Por baixo, um pipeline puxa carta de cinco bancos e torneio de outros cinco, normaliza e grava. O tier list não é escrito na mão: ele é calculado sobre as decklists importadas e traz a variação em relação ao recorte anterior, então dá pra ver o que subiu e o que caiu sem ter que lembrar do mês passado. As imagens passam por transformação na borda, porque tabela grande no celular é onde esse tipo de site costuma morrer.
O metagame é calculado, não escrito
Cada torneio novo recalcula o tier list. A tabela mostra share, número de decks, Top 8, títulos e a seta de tendência contra o recorte anterior. Dá pra trocar o circuito e navegar por recortes antigos de coleção, então o jogador consegue olhar o meta de dois meses atrás sem depender de alguém ter escrito sobre ele.
Carta em português é o produto
A galeria separa coleção internacional de japonesa, mostra nome em português e em inglês, código do set, data e contagem de cartas. A Pokédex própria agrupa por geração e marca as variantes. Num nicho onde a referência é toda em inglês, ler a carta no próprio idioma é o motivo de voltar.
Editorial com regra escrita
O calendário de lançamento mostra coleção anunciada sem data como trimestre, nunca com dia inventado. É uma regra pequena e é exatamente o tipo de coisa que separa um portal de referência de um agregador.
Por dentro
Documentação do projeto
Direção de arte
Cinco jogos de carta dividindo o mesmo site, cada um com estética própria e fanbase que não se mistura. A decisão de arte foi não escolher um lado: o chassi é preto neutro e cada jogo entra com a própria cor de marca por cima. Você sabe em que jogo está antes de ler o título da página.
Tipografia
- Aa Archivo Black
Título e número de torneio. Pesada o bastante pra segurar nome de carta em cima de arte cheia.
- Aa Barlow Condensed
Tabela de decklist e ranking. Condensada porque nome de carta é comprido e a coluna não é.
- Aa Archivo
Texto corrido de matéria e nota.
- Aa JetBrains Mono
Contagem, data de torneio e percentual de metagame — número que precisa alinhar em coluna.
Paleta
- #070707 Fundo
- #161616 Painel
- #262626 Linha
- #1E8FEF Ação
- #FFCB05 Pokémon
- #C99A3B Magic
- #32C8E0 Lorcana
- #E4342B Yu-Gi-Oh!
Uma variável só — a cor do jogo — troca o acento do painel inteiro. Nenhum componente precisa saber em que jogo está.
Por que essa stack
Astro na frente porque página de torneio e de carta é conteúdo que muda pouco depois de publicado: renderiza uma vez, serve como HTML estático, e o leitor não paga por framework que ele não usa. Svelte entra só onde precisa de estado de verdade — deckbuilder, filtro de metagame, busca. Cloudflare Workers com D1 e R2 porque o importador precisa rodar perto do banco e as imagens de carta são muitas e pesadas; servir de R2 pelo Images custa uma fração do que custaria num host tradicional.
Detalhes
Por que não WordPress aqui
Torneio não é post. É linha em tabela, com participante, deck e resultado que se cruzam. Num CMS de post isso vira campo customizado em cima de campo customizado até ninguém conseguir consultar nada.
Coluna que cabe no celular
Decklist tem 60 linhas. A tipografia condensada e o corpo mono no número foram escolhidos pra caber sem rolagem horizontal, que é onde a maioria dos sites de TCG desiste.
Em números
O que foi construído, contado no próprio site.
card games cobertos, cada um com subdomínio próprio
fontes externas integradas: 5 de carta, 5 de torneio
Pokémon na Pokédex própria, ligados a 13.843 cartas