Modeled the campaign as durable product data
Designed records for players, channels, messages, characters, content, attachments, pending actions, resources, and change history instead of treating the experience as a collection of pages.
Secure workflow product · Multi-user platform
A private TRPG operations platform for player communication, character state, GM adjudication, and protected content.
View public portal ↗


A long-running TRPG campaign needed private player records, permissioned chat, GM publishing, adjudication, attachments, and synchronized game state. Chat history and manual spreadsheets could not safely manage the growing number of roles, channels, and hidden facts.
Create one operational system for players and the GM without leaking private information across parallel storylines, while keeping production setup and ongoing content management practical.
Designed records for players, channels, messages, characters, content, attachments, pending actions, resources, and change history instead of treating the experience as a collection of pages.
Delivered player chat and action submission alongside GM publishing, adjudication, roster management, player-view previews, permission audits, and protected asset handling.
Added migrations, environment initialization, backups, deployment procedures, and health checks so the system could evolve without losing campaign state.
Private records are filtered by player, channel, and audience on the server. Unauthorized content is never sent to the browser and merely hidden with CSS.
D1 holds relational campaign state, while R2 stores protected images and files. This avoided forcing binary assets and transactional records into one storage model.
The public portal can explain the experience, but player and GM tools remain behind private access. The portfolio case study therefore demonstrates the system without pretending a visitor can enter a live campaign.
The platform moved from concept to production in roughly three days with persistent campaign state, multi-role workflows, protected files, auditable changes, and server-enforced authorization. It replaced fragmented chat-and-sheet operations with one controlled system.
Tools & platforms