Skip to content

Personal project / In development

Dungeon Pilot

Adventure preparation
and live-session workspace.

Dungeon Pilot is my independent personal project for preparing adventures and running in-person sessions in one workspace.

My role
I set the product vision and technical direction, defined the features, and reviewed the implementation.
Tech stack
  • Next.js 16
  • React 19
  • TypeScript
  • PostgreSQL
  • Prisma
  • Python
  • PyMuPDF
  • Tailwind CSS 4
Explore the workflow

01 / Import Review

A suggestion,
with its source

In Import Review, I can check a suggested scene beside its source page, edit it, and confirm or reject it. Confirming a scene doesn’t automatically confirm its relationships.

A suggested fictional scene in Import Review, with Confirm and Reject controls.
Import Review / Complete frameImport Review / Detail cropFull original — opens in a new tab

This demo uses original fictional content and deterministic mock extraction. Assessment scores are preset, not measured AI accuracy.

02 / The starting point

Why I built it

Dungeon Pilot started with an idea I wanted to explore: could I turn a D&D adventure PDF into a workspace that helps a DM run the game? I wanted scenes, characters, monsters and notes in one place, instead of constantly switching between a PDF and different tools.

Early on, I considered letting AI run parts of the adventure on its own. I decided to focus first on something more practical: helping the human DM prepare and manage a session while staying in control. That choice shaped the review step: imported content can be checked and edited against its source before confirmation.

The experiment grew into a larger full-stack project: document processing, structured data, background jobs and a live-session interface.

Keep the page in reach.

Check the original page as you edit, using the suggestion’s page and quote references.

The source page holds the scene text and a separate DM note.

Detail of the original fictional source page, containing scene text and a DM note.
Source page 1 / Review detailFull original — opens in a new tab

03 / Run

Confirmed context,
at the table

Run brings the confirmed scene into the session, with player-facing text and a separate DM-only note. Navigation and manual session notes stay alongside it.

The Run passage was edited manually in the app. The assistant was idle.

04 / Engineering

Decisions
& trade-offs

01

Confirmation is a separate step

I kept suggestions separate from confirmed session content. Run uses confirmed entities and confirmed relationships independently.

Trade-off This adds manual review before material is used at the table.

02

Editing stays linked to the source

The original document stays separate from the editable content. Page and quote references keep the two connected during review.

Trade-off References and editable copies need maintaining. A source link does not guarantee a correct interpretation.

03

Import work runs in the background

Parsing and extraction run as database-backed jobs in a separate TypeScript worker. A Python parser extracts text and renders page previews.

Trade-off There is another process to run, with job progress and failures to manage.

05 / In development

Where it stands

Dungeon Pilot is private and still in development. The app and its source are not publicly available.

Original fictional demonstration content.