Isaac Limb ← Portfolio Live site ↗
Project · Web app

Daggerheart Companion

A deployed companion app for a tabletop campaign: private player journals, a game-master hub with maps and trackers, and shared state that updates in real time.

Visit the live site ↗
Role
Solo
Stack
React · TypeScript · Vite · Supabase · Cloudflare
Status
Live
Access
Landing public, hub password-gated
Links
Liveon Cloudflare
~7.3klines of TS/TSX
Real-timeshared state
Authgated player areas

What it is

A single app with three faces: a public landing page, password-gated journals each player keeps to themselves, and a game-master hub. The hub holds combat and world maps, session notes, a whiteboard, faction dossiers, an initiative tracker, and a shared resource pool that everyone at the table sees update live. Auth and persistence run on Supabase; the app is a clean TypeScript SPA deployed on Cloudflare.

See it

The World Atlas: a hand-styled map of the Kingdom of Aravere with a location legend, labeled sites, and an inspector sidebar
World Atlas. A hand-styled map of the kingdom with a legend and a hover-to-inspect location list.
The Combat Map: a top-down battle grid with a full drawing toolbar and a token library of players and NPCs
Combat Map. A battle grid with a drawing toolbar, map selector, and a token library of players and NPCs.
Session Notes: a note editor with real session recaps, a notes list, and separate player journal tabs
Session Notes. Per-session recaps plus separate player journals, with search and a live word count.

Why I built it

I run a campaign and wanted one place that held the shared state instead of scattered notes and screenshots. It is a real, deployed app that a real group uses, and it kept me sharp on modern front-end and real-time data while I was heads-down on backend and infrastructure work elsewhere.

← All projects Get in touch →