How englucascaetano-stack/tablefone works
Mesa de Jogos is a private, browser-based multiplayer board-game platform, usable on a local network or through Supabase. Players choose a game, join a room, and submit move intentions; the server-side game rules validate moves and publish public state while keeping private hands or objectives separate. The graph includes the documented game library, tablet mode, and access-code administration. Several client and cloud details come from the README rather than sampled implementation; those relationships are cited there, and unsampled per-game screens are grouped by their existing directory.
Main entry points: index.js Game registry · app.js Browser shell · index.ts Mesa Edge Function · core.mjs Room and move logic
Components 30
Player interfaces
- Browser shell
public/app.js - Game screens
public/games - Tablet display
public/tablet.js - Client transport
public/transport.js
Local game service
- Local room server
server.js
Cloud game service
- Mesa Edge Function
supabase/functions/mesa/index.ts - Room and move logic
supabase/functions/mesa/core.mjs - Access control
supabase/functions/mesa/auth.mjs - Cloud game rules
supabase/functions/mesa/games - Supabase room data
- Supabase Realtime
Game library
- Game registry
games/index.js - Azul rules
games/azul/game.js - BANG! rules
games/bang/game.js - Buraco rules
games/buraco/game.js - Catan rules
games/catan/game.js - Caxeta rules
games/caxeta/game.js - Código Secreto rules
games/codenames/game.js - Coup rules
games/coup/game.js - Dama rules
games/damas/game.js - Hues and Cues rules
games/huesandcues/game.js - Ito rules
games/ito/game.js - Paciência rules
games/paciencia/game.js - Scrabble rules
games/scrabble/game.js - Portuguese dictionary
games/scrabble/dict.js - Truco rules
games/truco/game.js - Uno rules
games/uno/game.js - War rules
games/war/game.js - War II rules
games/war2/game.js
Other components
- Players
Connections 32
- Players → Browser shell: use
- Browser shell → Game screens: opens game
- Browser shell → Client transport: sends actions
- Game screens → Client transport: submits moves
- Players → Local room server: join and play
- Local room server → Game registry: loads games
server.js - Game registry → Azul rules: loads rules
games/index.js - Game registry → BANG! rules: loads rules
games/index.js - Game registry → Buraco rules: loads rules
games/index.js - Game registry → Catan rules: loads rules
games/index.js - Game registry → Caxeta rules: loads rules
games/index.js - Game registry → Código Secreto rules: loads rules
games/index.js - Game registry → Coup rules: loads rules
games/index.js - Game registry → Dama rules: loads rules
games/index.js - Game registry → Hues and Cues rules: loads rules
games/index.js - Game registry → Ito rules: loads rules
games/index.js - Game registry → Paciência rules: loads rules
games/index.js - Game registry → Scrabble rules: loads rules
games/index.js - Scrabble rules → Portuguese dictionary: checks words
games/scrabble/game.js - Game registry → Truco rules: loads rules
games/index.js - Game registry → Uno rules: loads rules
games/index.js - Game registry → War rules: loads rules
games/index.js - Game registry → War II rules: loads rules
games/index.js - Players → Mesa Edge Function: join and play
- Browser shell → Mesa Edge Function: cloud requests
- Mesa Edge Function → Access control: checks access
supabase/functions/mesa/index.ts - Mesa Edge Function → Room and move logic: routes requests
supabase/functions/mesa/index.ts - Room and move logic → Cloud game rules: uses game rules
supabase/functions/mesa/core.mjs - Mesa Edge Function → Supabase room data: reads and writes
- Room and move logic → Supabase room data: room operations
- Supabase room data → Supabase Realtime: publishes rooms
- Browser shell → Tablet display: tablet mode