For Legacy of Dragonholt

The campaign,
kept in sync.

A real-time companion app for the storytelling board game. The party, the purse, the renown, the calendar, the chronicle — every panel updates on every player's screen the moment it changes.

The full Campaign Companion app: party, ledger, notebook and chronicle.

What it tracks

One panel per concern. All of them in sync.

Real-time, on every screen

No refresh. No accounts. Just sync.

Edit anywhere, see it everywhere

Every panel is wired to a shared Socket.IO channel. When one player marks a quest done, advances the calendar, or restores stamina with a long rest, the change is broadcast to every other browser in the campaign — phone, tablet or laptop, all at once.

If the realtime link drops, edits keep working locally and a toast announces the loss. When the link returns, sync resumes.

The backend can persist to MongoDB or fall back to an in-memory store — perfect for an evening around the table without any setup.

The companion app on a mobile screen.

Get going

Two terminals and you're at the table.

Install dependencies, start the backend on :3080, start the dev server on :3000, point your players' browsers at the same backend, and you're done. The full walkthrough — including production builds and remote-play setup — is on the Get started page.

yarn install --frozen-lockfile

# Terminal 1 — backend on :3080
yarn dev

# Terminal 2 — Vite dev server on :3000
yarn start