Todos os projetos
PROJETO PESSOAL / Beta

Koinon Games.

Jogos de mesa síncronos para grupos, células e amigos.

STACK TÉCNICA8 tecnologias mapeadas
  • 01React
  • 02Vite
  • 03TypeScript
  • 04Node.js
  • 05Fastify
  • 06Socket.IO
  • 07Tailwind CSS
  • 08PWA
MAPA DO SISTEMA

Como o projeto se sustenta

Uma visão compacta das tecnologias por trás da experiência, agrupadas pelo papel que exercem no produto.

01

Interface

  • React
  • Vite
  • Tailwind CSS
02

Runtime

  • Node.js
  • Fastify
  • Socket.IO
03

Entrega

  • PWA

Visão geral

O Koinon Games é uma plataforma digital de jogos de mesa para grupos que querem jogar juntos sem levar um baralho ou lembrar de trazer um jogo. O nome vem de koinon, comunhão: o produto existe para tornar simples começar uma atividade compartilhada. Qualquer pessoa com um celular pode entrar na sala por QR code ou ID e jogar pela internet. O público inicial eram igrejas e grupos de amigos, mas o produto serve para qualquer grupo. Os primeiros jogos são O Judas, em que discípulos identificam o traidor por palavras secretas, e Os Fofoqueiros, em que crentes protegem segredos enquanto sabotadores tentam atrapalhar as missões.

O que faz

  • 01O Judas: um jogo de dedução social em que discípulos usam palavras secretas para identificar o traidor.
  • 02Os Fofoqueiros: um jogo de confiança e traição em que crentes protegem segredos e fofoqueiros sabotam missões.
  • 03Salas que podem ser acessadas pela tela inicial com QR code ou ID da sala.
  • 04Salas síncronas com atualizações em tempo real dos jogadores e do estado do jogo.
  • 05Interface PWA mobile-first pensada para uso durante um encontro presencial.
  • 06Temas cristãos e não cristãos, conforme a preferência do grupo.
  • 07Tipos TypeScript compartilhados para jogadores, salas, temas e eventos Socket.IO.

Por que construí

O produto remove a fricção de levar um jogo físico: se todos têm celular e acesso à internet, o grupo pode começar a jogar em qualquer lugar.

O público inicial eram igrejas e grupos de amigos, mas o formato serve para qualquer grupo que queira jogar sem que uma pessoa precise carregar todo o material.

A direção do produto, o design dos jogos e as decisões sobre a experiência foram meus; agentes de código aceleraram a implementação dentro de um monorepo privado.

Mais que um protótipo no papel.

Mais de 50 pessoas já jogaram em mais de 100 partidas. O produto ainda está em beta, mas o ciclo central — entrar numa sala, sincronizar o grupo e jogar pelo celular — já foi testado em encontros reais.

Como foi construído

  • 01O app web usa React, Vite e TypeScript, com Tailwind CSS e suporte a PWA para experiências capazes de funcionar offline.
  • 02O backend usa Node.js, Fastify e Socket.IO para endpoints HTTP e comunicação em tempo real.
  • 03Um monorepo com pnpm workspaces mantém app web, servidor e packages/shared juntos.
  • 04O pacote compartilhado define os contratos usados pelos dois lados, incluindo Player, Room, Theme e GameEventMap.
  • 05As salas ficam na memória do servidor e expiram depois de tempo suficiente sem atividade, evitando contas e persistência enquanto mantêm as partidas ativas simples.
  • 06Validações protegem contra eventos repetidos ou fora de ordem, enquanto uma tolerância de reconexão dá tempo para jogadores desconectados voltarem.
  • 07O trabalho técnico mais difícil foi lidar com condições diferentes de conexão e manter os controles utilizáveis em vários tamanhos de celular.
  • 08O frontend está publicado na Vercel e o backend roda na Railway, com CORS, segredos e a configuração de produção mantidos nas respectivas plataformas.
  • 09Ainda não há monitoramento ou health check porque o beta é pequeno; a prioridade atual é corrigir os casos de borda encontrados nos testes com pessoas.

Limites intencionais

  • O repositório é privado.
  • O produto está em beta e continua recebendo correções, especialmente em conectividade e controles responsivos.
  • A primeira versão foca em O Judas e Os Fofoqueiros; o catálogo pode crescer depois.
  • A plataforma foi pensada para grupos síncronos, não para matchmaking assíncrono.
  • As salas ficam na memória do servidor e não há contas ou perfis persistentes; apenas o nome escolhido e preferências locais permanecem no dispositivo.