Guided tabletop RPG character builder focused on making rules-heavy character creation easier to learn, faster to complete, and easier to review.
Forge Character turns fantasy character creation into a bounded workflow instead of a giant spreadsheet of options. The fastest entry point is the root builder at index.html: a guided four-step experience for choosing a ruleset, shaping a character concept, allocating abilities, making build choices, and reviewing a final sheet with validation, saves, and exports.
The repo also includes a typed React + Fastify monorepo that extends the product with a shared rules package, DM session workflows, revision history, and an optional Ollama-backed draft assistant.
Character builders are deceptively hard product problems. They combine multi-step state, edition-specific rules, progression logic, validation, and a UX challenge: how do you reduce friction for players without hiding too much of the rules?
This project is interesting because it treats character creation as a workflow design problem, not just a form. The product balances flexibility with guardrails, gives clear progression through the build, and keeps the current character state visible through a live sheet and validation feedback.
- Players who want a clearer path through fantasy character creation
- Game masters who need quick, reviewable character builds
- Teams evaluating product thinking, workflow design, and practical front-end/back-end execution
- Guided step-by-step flow instead of a single overwhelming canvas
- Multiple SRD-oriented rulesets, including 5e and 3.5e coverage
- Live derived stats, validation feedback, and export-ready output
- Optional local AI assist that can fill fields from free text without becoming the core story
- A public repo that shows both product polish and technical depth
- Open the root builder.
- Choose a ruleset and give the character a name, class, and species.
- Move to ability scores and show the live validation and point-buy feedback.
- Pick a few skills, spells, or items.
- Finish on Review to show the live character sheet, validation state, local save/export, and optional AI autofill.
The exact spoken version is in docs/DEMO-SCRIPT.md.
- Guided four-step builder for setup, abilities, build choices, and review
- SRD-oriented ruleset support for 5e 2024, 5e 2014, and 3.5e content packs
- Live sheet rendering with derived stats, features, gear, and spell selections
- Rules-aware validation and progression feedback during the build
- Local save/load plus JSON import/export and parsable PDF export
- Optional Ollama-powered chat assist that can translate free text into builder fields
- React/API monorepo path for shared contracts, session publishing, and revisions
The public demo path is intentionally simple: the root builder is a direct-file, low-friction entry point that works well for quick demos and local use.
Under the hood, the repo also shows a more modular architecture:
src/: direct-file builder shell, legacy engine, andfile://-safe bundleapps/web: React builder and DM session workspaceapps/api: Fastify API for characters, sessions, revisions, and AI assistpackages/rules-core: typed rules contracts, validation, export, and AI-assist payloadspackages/ui: reusable React UI primitives and styles
This split lets the repo show both workflow-first product design and a realistic path toward a more typed, service-backed application architecture.
- TypeScript and modern JavaScript
- React 19 + Vite for the web app
- Fastify for the API
- Prisma-ready persistence with in-memory fallback
- Vitest for tests
- Esbuild for the direct-file bundle
- Ollama for optional local AI assist
Requirements:
- Node.js
20.19+or22.12+ - Windows PowerShell with
npm.cmd
Install dependencies:
npm.cmd installRecommended launch:
./START_FORGE_CHARACTER_AI.cmdPowerShell-safe alternative:
npm.cmd run start:aiManual split-mode commands:
npm.cmd run dev
npm.cmd run dev:web
npm.cmd run dev:apiPrimary local paths:
- Root builder:
index.html - Optional diagnostics launcher:
launcher.html - React app:
http://localhost:5173 - API health:
http://localhost:8787/health
If you edit the root builder source, refresh the checked-in file:// bundle:
npm.cmd run bundle:staticFastest demo options:
- Click
Randomize Characterfor a working example immediately - Build a simple character manually in the root flow
- Use the chat prompt:
Make me a level 3 dwarven cleric named Aria
The API defaults to in-memory storage, so no database setup is required for a demo. If you want Prisma-backed storage, copy .env.example and provide a local PostgreSQL DATABASE_URL.
- The root builder stays lightweight and demo-friendly, even though the repo also contains a fuller React/API architecture.
- AI is optional and local-first. If Ollama is unavailable, the product still works and the chat falls back to deterministic guidance.
- The repo is intentionally SRD-oriented. It avoids pretending to be a complete commercial rules catalog.
- The guided flow prioritizes clarity over maximal on-screen density.
- Tighten content-pack coverage and onboarding copy
- Expand the strongest session-sharing flows from the React/API stack
- Improve screenshot/demo automation for repeatable portfolio updates
- Continue unifying more behavior around shared typed rules contracts
- Case study
- 60-second demo script
- Resume, LinkedIn, and interview bullets
- Publish checklist and GitHub metadata
This repo is SRD-oriented. The included rulesets reference SRD-era material and surface license notices in-app. If you extend the project with non-SRD content, review the legal scope before publishing those additions.



