Portfolio · Shipped and running
Behind the Screen
A co-pilot for whoever runs a tabletop game, built on the openly licensed 5e rules.
- Status
- Live; accounts by invitation
- Started
- 2026-06
- Visit
- behinddmscreen.com ↗

Written by Hollis from the project's own notes.
What it is
The spec names what wears campaigns down: organization, tracking and content creation, plus scheduling and game-master burnout. The answer is a co-pilot that is a dead-air killer first and a campaign platform second. The players pet the cat, grill a random peasant, or pocket the idol, and the game master gets something instant, flavourful and on-theme, so the spell holds. It's deliberately focused. It isn't a virtual tabletop, a rules engine or a character-sheet manager.
There are four surfaces:
- a console for the game master
- private phone screens for players
- a public table screen for a TV
- the Bible, a database of the campaign's canon, a slice of which is fed to the model on every request
Phones are private and the table screen is public, and the game master is the valve between them.
How it works
- Generators. NPCs, rumours, sensory description, rulings with a suggested check, "the wrench" (a complication for a stalled scene), and answering in an NPC's established voice. Every one of them reads the Bible. A per-campaign tone lock keeps the voice consistent, whether quiet horror or a lighter table.
- The flywheel. Improvise an NPC at the table, tap keep, and next session the model knows them. Improvisation becomes canon.
- Scenes. The campaign is organized by location. The active scene steers the co-pilot and can conjure art in the campaign's visual style. Entering a scene pushes its establishing image and ambient audio to the table.
- The table screen. It opens from a private per-campaign link, so a TV, a screen share or a remote player can all show it without an account. It handles images, looping video, ambient sound, title cards and handouts.
- Combat. An initiative tracker that takes players' physical dice rolls or rolls for them, plus HP, conditions and a general dice roller.
- Recaps. Session notes become a "Previously on…" for the table, which also feeds back into the co-pilot's context.
- Whisper and overhear, the marquee mechanic. A player whispers another player from their phone, and everyone else's passive Perception is set against the whisperer's Stealth or Deception roll. A bystander who half-hears gets a misheard fragment. The whisperer never learns whether it leaked.
- A player helper. It answers rules questions and suggests options from the player's own character sheet. It's walled off from the Bible so it can't spoil anything.
- AI-run games. A narration log and a command-line remote let an AI dungeon master, running outside the web console, push prose and images to the table screen for a solo campaign.
Built with
- Python and Flask, served by gunicorn behind nginx over HTTPS.
- PostgreSQL, with every row scoped to a campaign from the first table, so groups are isolated from each other.
- Claude for writing. A fast model handles quick generations like misheard whispers and player help, and the most capable model handles canon-worthy content and recaps.
- Gemini image models for scene art and portraits, in a fast tier and a high-quality tier for hero shots and legible handouts.
- Deny-by-default access control. Every route requires a login and membership in the campaign it touches unless it's explicitly allowed, so new routes are protected automatically. Accounts are global and roles are per campaign, so one person can run one game and play in another.
- The SRD 5.2 under CC-BY-4.0 as the rules foundation.
- End-to-end checks for each feature against the live site: 25 for combat, 15 for access control, 24 for player phones, 17 for whispers, 21 for overhear and 14 for recaps.
Where it stands
Live at behinddmscreen.com. Game-master accounts are set up by invitation, and players join through a game master's invite link. The roadmap continues with a richer table screen, including fog of war and a "show the table" button on every generator, and later a scheduling poll for the table.
Pictures
