Skip to content
Mostly Mortals

Mostly Mortals

A D&D campaign knowledgebase that turns session audio into illustrated, narrated web content through a multi-service AI pipeline.

Astro OpenAI Whisper GPT Image 1.5 ElevenLabs Vercel live

The problem with D&D campaigns

Every tabletop group has the same problem. You play an incredible session, someone does something legendary, and two weeks later nobody remembers the NPC’s name. Session notes are either nonexistent or written by the one player who always volunteers and eventually burns out.

I wanted to fix that for my own group. Mostly Mortals is a campaign companion that automates the parts of D&D that feel like homework: session recaps, NPC tracking, scene illustrations, and narrated “Previously on…” recaps. The players show up, play, and the rest happens through a pipeline I built with Claude Code.

The session pipeline

After each session, a multi-step pipeline transforms raw audio into polished campaign content:

  1. Record with a Zoom H2essential (32-bit float WAV, 360-degree mic)
  2. Prepare multi-segment recordings with prepare-audio.sh
  3. Transcribe via OpenAI Whisper cloud API (~2 min, ~$0.90 per session) with an auto-generated vocabulary prompt built from the knowledgebase
  4. Extract structured content using /process-session, which produces player summaries, DM notes, best moments, quest updates, and image prompts
  5. Illustrate with generate-images.js supporting GPT Image 1.5, Nano Banana 2, and Pro models (with a --compare flag to evaluate side-by-side)
  6. Narrate with /narrate, which generates a dramatic “Previously on…” script and runs it through ElevenLabs v3 with a custom “Old Adventurer” voice
  7. Deploy manually with vercel --prod

Dom reviews and corrects extracted facts at step 4 before anything publishes. The AI assists, but editorial control stays human.

The campaign site

The frontend is Astro with Content Collections, deployed to Vercel at mostly-mortals.bydom.io. It features a “Grimoire” theme with dark/light toggle, a quest log with status tracking, session galleries with AI-generated art, and hidden recap pages where players can listen to the narrated intro before each session.

What it represents

This project sits at the intersection of AI tooling and creative storytelling. It chains multiple AI services (Whisper, Claude, GPT Image 1.5, Nano Banana 2, ElevenLabs) into a production pipeline where each service can fail independently without breaking the whole chain. Our group of 7 players and a DM has 18+ months of campaign history at Level 10, fully illustrated and narrated, without anyone writing a single note by hand.

← Back to projects