Skip to content

RPG-Web UI Roadmap

Vision

A polished, immersive solo TTRPG experience with: - Real-time campaign state visibility - Automatic session documentation - Searchable world knowledge base - Ambient context that "just works"


Phase 1: Foundation Polish (Quick Wins)

1.1 Standard Header (DONE)

  • [x] UserMenu with avatar (dev mode / Authentik)
  • [x] ThemeToggle (dark/light)
  • [x] App title + campaign breadcrumb
  • [x] Back to campaign list link (via header breadcrumb)

1.2 Landing Page (Partial)

  • [x] Campaign cards with better styling
  • [ ] Last played timestamp
  • [ ] Session count badge
  • [ ] "New Campaign" button (calls POST /campaigns)

1.3 Basic Chat Polish

  • [ ] Better message styling (DM vs player)
  • [ ] Markdown rendering for responses
  • [ ] Loading states / typing indicator

Effort: 1-2 sessions


Phase 2: Session Awareness

2.1 PC Status Sidebar

  • [ ] Character name + class
  • [ ] HP bar (visual, color-coded)
  • [ ] Current location
  • [ ] Active conditions (badges)
  • [ ] Gold / key resources
  • [ ] Real-time updates when tools mutate state

2.2 Tool Call Display

  • [ ] Collapsible tool call cards
  • [ ] Dice roll highlighting (success/fail colors)
  • [ ] Entity lookup preview
  • [ ] State change indicators (HP -5, Location changed)

2.3 Action Buttons

  • [ ] Parse 5-action options from response
  • [ ] Render as clickable buttons
  • [ ] Auto-send selected action

Effort: 2-3 sessions


Phase 3: Session Documentation

3.1 Auto-Journal

  • [ ] End-of-session summary generation
  • [ ] Key events extraction
  • [ ] NPC interactions logged
  • [ ] Decisions and outcomes tracked

3.2 Session Browser

  • [ ] List past sessions
  • [ ] Session recap view
  • [ ] Jump to specific session in history
  • [ ] Export session as markdown

3.3 Timeline View

  • [ ] Visual campaign timeline
  • [ ] Day-by-day event history
  • [ ] Clickable events → context

Effort: 2-3 sessions


Phase 4: World Knowledge

4.1 Glossary / Codex

  • [ ] Searchable entity list (NPCs, locations, items)
  • [ ] Entity detail cards
  • [ ] Relationship graph visualization
  • [ ] "Discovered" vs "Unknown" status

4.2 Map View (Future)

  • [ ] Location relationship diagram
  • [ ] Current location indicator
  • [ ] Travel paths / connections

4.3 NPC Tracker

  • [ ] NPCs met vs mentioned
  • [ ] Disposition indicators
  • [ ] Last interaction summary
  • [ ] Known secrets (revealed only)

Effort: 3-4 sessions


Phase 5: Real-time & Intelligence

5.1 Real-time State Sync

  • [ ] WebSocket for state updates
  • [ ] Sidebar updates without refresh
  • [ ] Push notifications for time-sensitive events (clocks)

5.2 Smart Summaries

  • [ ] "Previously on..." session opener
  • [ ] Context-aware recaps
  • [ ] "What do I know about X?" quick query

5.3 Proactive Suggestions

  • [ ] Suggest relevant actions based on threads
  • [ ] Remind about forgotten plot hooks
  • [ ] NPC birthday / scheduled events

Effort: 3-4 sessions


Phase 6: Polish & Delight

6.1 Theming

  • [ ] Campaign-specific themes (fantasy, sci-fi, horror)
  • [ ] Custom color schemes per campaign
  • [ ] Ambient background effects

6.2 Audio (Optional)

  • [ ] Ambient soundscapes
  • [ ] Dice roll sounds
  • [ ] Combat/exploration mode music

6.3 Mobile Optimization

  • [ ] Responsive sidebar (drawer on mobile)
  • [ ] Touch-friendly action buttons
  • [ ] Swipe gestures

Technical Debt / Infrastructure

Auth

  • [ ] Authentik integration
  • [ ] Multi-user campaign sharing (future)

Performance

  • [ ] Message virtualization for long sessions
  • [ ] Lazy load entity data
  • [ ] Optimistic UI updates

Data

  • [ ] Session export/import
  • [ ] Campaign backup/restore
  • [ ] Cross-device sync

Quick Wins Matrix

Item Impact Effort Priority Status
Header + UserMenu High Low P0 DONE
Theme toggle Medium Low P0 DONE
PC Status sidebar High Medium P1 Next
Landing page polish Medium Low P1 Partial
Tool call display Medium Medium P1
Action buttons High Medium P2
Session browser Medium Medium P2
Glossary/Codex High High P3
Auto-journal High High P3
Real-time sync Medium High P4

Design Decisions

Resolved

  1. Journal - Auto-generate at session end. Investigate continuous notes with Supabase realtime.

  2. Glossary scope - Only show "discovered" entities. No spoilers.

  3. GM Mode - Not needed now. Future: useful for troubleshooting/adjusting secrets.

  4. Action buttons - TBD - need to test UX (auto-send vs populate input).

  5. Real-time - Use Supabase Realtime (easy, built-in). Consider moving PC state to DB.

  6. Mobile - Important. Must be playable on mobile. Responsive-first design.

Open Questions

  1. Multi-character - Support for multiple PCs in one campaign? (Party play)

  2. Branching - Save points / "what if" exploration?

  3. Voice - TTS for DM responses? STT for player input?

  4. PC State storage - Keep in vault files, or migrate to Supabase for realtime?


Dependencies

Feature Requires
Real-time sync WebSocket endpoint in palimpsest
Auto-journal Session closeout endpoint + LLM summary
Glossary Entity list endpoint (exists)
Action buttons Response format parsing (5 options)
PC Sidebar PC state endpoint (exists) + polling/WS