system game webapp

Project Goals

Create a local-first TTRPG web app for DMs to:

  1. Host real-time game sessions on their machine via localhost.
  2. Manage character sheets (DM view + player views).
  3. Roll dice (including Fate, exploding mechanics).
  4. Share a dynamic world knowledge bank synced with Obsidian.md.
  5. Operate entirely offline with file-based storage (no cloud dependencies).

Core Features

1. User Roles & Authentication

2. Character Management

3. Dice Roller

4. World Knowledge Bank

5. Networking & Security


Technical Stack

Component Technology Purpose
Frontend React + react-router UI for DM/players
Backend Express.js + Socket.io Real-time API + file handling
Storage JSON files Characters, session data
Markdown marked library Render Obsidian .md files
Networking Socket.io WebSockets Live updates (sheets, knowledge)

Project Structure

bash
dnd-app/  
β”œβ”€β”€ server/                  # Backend  
β”‚   β”œβ”€β”€ data/               # JSON/YAML files (characters, session)  
β”‚   β”œβ”€β”€ knowledge/          # Obsidian vault copy (markdown files)  
β”‚   └── index.js            # Express server + Socket.io  
β”œβ”€β”€ src/                    # React frontend  
β”‚   β”œβ”€β”€ components/         # Dice, KnowledgeBank, CharacterSheet  
β”‚   β”œβ”€β”€ DMScreen.js         # DM control panel  
β”‚   └── PlayerScreen.js     # Player view  
└── package.json

Setup & Workflow

  1. DM Prep:
    • Copy Obsidian vault to server/knowledge.
    • Run npm start to launch React + Express.
  2. In-Game:
    • Players connect via DM’s IP + character passphrase.
    • DM edits sheets/toggles knowledge visibility in real time.
  3. Post-Session:
    • DM exports character data (JSON/YAML).
    • Server shuts down, wiping session data (optional).

Roadmap

  1. Phase 1: Core DM/player sheets + dice roller.
  2. Phase 2: Knowledge bank + Obsidian sync.
  3. Phase 3: Export/import workflows + UI polish.

Key Constraints

Pool Primary Stat Secondary Stat Regen Drivers
Health Endurance (x6) Resistance (x2) (Vitality x3) + Reaction
Mana Intelligence (x5) Control (x1) (Wisdom x2) + Vitality
Stamina Willpower (x4) Endurance (x1) (Focus x2) + Vitality
P. Def. Endurance (x2) Agility (x1)
M. Def. Willpower (x2) Resistance (x1)