A DnD character builder built on top of Iroh for peer to peer connections! sheets.renatillas.dev
lustre dnd gleam
0

Configure Feed

Select the types of activity you want to include in your feed.

Gleam 68.6%
CSS 23.1%
JavaScript 7.8%
Rust 0.5%
28 1 0

Clone this repository

https://git.vm.fail/renatillas.dev/sheets https://git.vm.fail/did:plc:hj23rjmrmpcqo5kr67aiwzgi
ssh://git@knot1.tangled.sh:2222/renatillas.dev/sheets ssh://git@knot1.tangled.sh:2222/did:plc:hj23rjmrmpcqo5kr67aiwzgi

For self-hosted knots, clone URLs may differ based on your setup.


README.md

Sheets#

A browser-based D&D 2024 character builder written in Gleam and Lustre. It loads rules data from a URL supplied by the user and keeps a local, versioned character library in the browser.

Features#

  • D&D 2024 classes, subclasses, species, backgrounds, feats, spells, and equipment
  • Level-by-level class features and choices
  • Final ability scores and modifiers, including background and feat bonuses, plus skills, armor class, hit points, initiative, passive Perception, spell preparation, and spell save calculations
  • Gold, inventory quantities, equipped items, and tool proficiencies
  • Play-state tracking for spell slots, limited-use class resources, short and long rests, Hit Dice, death saves, Inspiration, Concentration, Exhaustion, and conditions
  • Consumable quantities, tracked item charges, attunement, and configurable custom resources
  • Printable character sheet
  • Versioned JSON character import and export
  • End-to-end encrypted Iroh table sessions: players share their sheets and can inspect the other connected characters; the Game Master gets a complete read-only sheet for each player including current hit points, spell slots, Hit Dice, class resources, conditions, and other play-state counters

Rules data is supplied at runtime and is not configured in the application build.

Development#

Requirements: Gleam 1.17 or newer and Bun.

Start the Lustre development server:

gleam run -m lustre/dev start

Open http://localhost:1234, select Data in the header, and enter the base URL for a compatible rules data directory. The directory must contain races.json, backgrounds.json, feats.json, items-base.json, class/, generated/, and spells/. The URL is normalized with a trailing slash and stored only in the current browser.

Create a production build with:

gleam run -m lustre/dev build

Verification#

gleam format --check src test
gleam check
gleam test