Back to the CV

DnD Sidekick

A player-centred web app for D&D 5e character sheets that works offline at the table, with spells, inventory, a rules compendium and a character roster.

Character sheet of a level 4 human Artificer (Artillerist): hit points, armour class, attacks, spell slots, abilities, saving throws and skills, with the app side menu
Character sheet
Status
Self-hosted, in development

What it does

  • Playable character sheet with inline editing and panels that change with the class (Artificer and Monk so far).
  • Character roster: guided creation, level up, duplicate, and JSON export and import.
  • Spells (prepared, slots, homebrew) and inventory with weight, containers and homebrew items. Armour class and attacks come from the equipped gear.
  • Rules compendium across several sourcebooks, with full rules text and tables.

How it is built

  • Offline PWA on React, TypeScript and Vite. Character state lives in IndexedDB through Dexie, and the rules ship as static JSON produced by an import script.
  • The stack favours long-lived, widely used pieces over newer local-first sync engines. A backend for live sync between players and the DM is a later phase.
  • The class-adaptive interface uses a class descriptor and a registry of panels, so a new class is data plus a few panels.
  • Tested with Vitest, Testing Library and Playwright.
Spells screen: spell DC and attack, 1st-level slots, the prepared spell list by level with a search box, and the detail of Scorching Ray
Spells
Rules compendium: tabs with counts of spells, items, classes, feats and more; the class list and the Artificer reference text
Rules compendium

Technologies

  • React
  • TypeScript
  • Vite
  • PWA
  • IndexedDB
  • Dexie
  • Vitest
  • Playwright