How michaldabrowski-dentons/ourpantheon works
O BOGOWIE! is a Polish-language, multiplayer browser tabletop for the Our Pantheon game. Players authenticate, create or join a world, shape their gods, agree on a palette and world origins, then play repeated Logos, god-action and Chaos phases on a shared hex map. Supabase provides authentication, persistence, server-side game rules and realtime synchronization; the client store mirrors game state. The README documents these capabilities, while some screens and database details are not in the supplied excerpts, so their connections are shown only where documented.
Main entry points: GamePage.tsx Game orchestration · supabase.ts Supabase client · AuthGate.tsx Authentication · PalettePage.tsx Shared palette
Components 22
Entry and rooms
- App routing
src/App.tsx - Authentication
src/features/auth/AuthGate.tsx - Lobby and rooms
src/features/lobby/LobbyPage.tsx
World setup
- World creation
src/features/creation/WorldCreationPage.tsx - God creation
src/features/pantheon/GodCreation.tsx - Shared palette
src/features/palette/PalettePage.tsx
Gods and turns
- Game orchestration
src/features/game/GamePage.tsx - God actions
src/features/game/actions/ActionDialog.tsx - Logos rolls
src/data/dice.ts - Chaos phase
src/features/game/chaos/ChaosOverlay.tsx
World systems
- Action rules
src/data/actions.ts - Hex map
src/features/game/map/HexMap.tsx - World model
src/lib/world.ts - Hex geometry
src/lib/hex.ts - Chronicle
src/data/chronicle.ts
Shared services
- Game state store
src/store/useGameStore.ts - Realtime sync
src/hooks/useGameRealtime.ts - Supabase client
src/lib/supabase.ts - Shared UI primitives
src/components/ui/Primitives.tsx - Stone buttons
src/components/ui/StoneButton.tsx
Other components
- Players
- Supabase services
Connections 27
- Players → App routing: enter
- App routing → Authentication: routes to
src/App.tsx - Authentication → Lobby and rooms: admits player
src/features/lobby/LobbyPage.tsx - Lobby and rooms → World creation: creates world
- Lobby and rooms → God creation: opens room setup
- God creation → Shared palette: continues setup
- Shared palette → Game orchestration: starts play
- Game orchestration → God actions: offers actions
- Game orchestration → Logos rolls: runs Logos rolls
- Game orchestration → Chaos phase: opens Chaos
- Game orchestration → Hex map: shows map
- God actions → Action rules: uses definitions
src/features/game/actions/ActionDialog.tsx - God actions → World model: reads world
src/features/game/actions/ActionDialog.tsx - World model → Hex geometry: uses geometry
src/lib/world.ts - Hex map → World model: displays world
- Game orchestration → Chronicle: records verses
- World creation → Supabase client: uses backend
src/features/creation/WorldCreationPage.tsx - Shared palette → Supabase client: reads and writes
src/features/palette/PalettePage.tsx - Authentication → Supabase client: authenticates
src/features/auth/AuthGate.tsx - Game state store → Supabase client: loads game rows
src/store/useGameStore.ts - Supabase client → Supabase services: queries and RPCs
src/lib/supabase.ts - Realtime sync → Supabase client: subscribes
src/hooks/useGameRealtime.ts - Realtime sync → Game state store: applies changes
src/hooks/useGameRealtime.ts - World creation → Game state store: uses state
src/features/creation/WorldCreationPage.tsx - Shared palette → Game state store: uses state
src/features/palette/PalettePage.tsx - Authentication → Shared UI primitives: renders
src/features/auth/AuthGate.tsx - Authentication → Stone buttons: uses