- Cloud-synced rooms with shareable control + overlay links.
- Life, commander damage, poison, energy, and experience tracking.
- Monarch, initiative, and day/night indicators.
- Preset playgroups for quick setup.
- Dice roller for fast starts and random decisions.
- Customizable overlay layout for OBS and streaming tools.
- Realtime sync across all players and devices.
Requires: Node.js 18+
npm install
npm run dev| Variable | Required | Description |
|---|---|---|
VITE_SUPABASE_URL |
Yes | Supabase project URL used by the frontend client. |
VITE_SUPABASE_PUBLISHABLE_KEY |
Yes | Supabase anon/publishable key. |
- You create a room and pick the player count.
- LifeLink generates shareable links for player control and OBS overlay.
- The UI syncs life totals and counters through Supabase Realtime.
- The overlay updates instantly across all connected devices.
flowchart LR
Host["Host device"] --> Room["Room setup"]
Room --> Links["Shareable control + overlay links"]
Links --> Players["Player devices"]
Players --> Realtime["Supabase Realtime sync"]
Realtime --> Overlay["OBS overlay"]
Overlay --> Stream["Stream output"]
Try these table setups:
- 4-player Commander with commander damage enabled.
- 2-player 20-life duel with poison tracking.
- 3-player game using monarch + initiative indicators.
- 4-player pod with a shared dice roll for first player.
- Custom overlay layout tuned for vertical streams.
LifeLink is built to be self-hosted. Forks should rename the project and remove LifeLink branding when deployed publicly.
This repository does not include production credentials. Real environment files are ignored by Git and must be provided by operators.
Use a local .env file to configure your own instance.
- Missing environment variables: Ensure
.envis populated with the required Supabase settings. - Overlay not updating: Confirm all devices are connected to the same room link.
- Realtime sync issues: Verify Supabase keys and project URL.
Contributions are welcome! Open an issue or submit a pull request with your proposed changes.