Rimewarden social card

About

A personal prototype for tracking a Frosthaven board-game campaign: town resources, party composition, and scenario unlocks. Built with SvelteKit and Svelte 5 runes, it uses a class-based CampaignManager store with localStorage persistence and JSON import/export over a strongly-typed domain model covering resources, building costs, scenario links and party composition. D2 diagram generation builds the campaign's scenario-progression graph directly from saved state, styling completed, pending, and unknown nodes; the affordableBuildings derivation checks resource sufficiency against building costs without server involvement.

Highlights

  • Svelte 5 runes class-based CampaignManager store ($state/$derived) with localStorage persistence and JSON import/export.
  • D2 diagram generation from campaign data: programmatically builds a styled scenario-progression graph with completed/pending/unknown node classes.
  • Strongly-typed board-game domain model covering resources, building costs, scenario links, and party composition.
  • Deterministic game logic: an affordableBuildings derivation checks resource sufficiency against building costs without server involvement.
  • Tabbed single-page architecture with reactive tab switching via a runes store, configured with svelte-adapter-bun.

By the numbers

Commits
2
Lines added
+1,772
Lines removed
−21
Source files
900