← Back to Projects
CO-GM preview

CO-GM

D&D CAMPAIGN MANAGEMENT PLATFORM

JavaScriptReactNode/ExpressMongoDBAzure
Visit Live Site

THE STORY

As a GM for over a decade, I was frustrated by existing tools that were either too bloated or too limited. D&D is a game about interacting with people—it's really important that you spend as little time fucking around trying to use your notes and as much time as possible actually interacting with the people around you in the game. I wanted to build something that felt natural, was lightning fast, and got out of the way during gameplay. After 3 years of development, Co-GM has 1,500+ users who found it organically, 50+ paying subscribers, and I still get messages from users saying 'I've been looking for a tool that does everything that Co-GM does for ages.'

QUICK STATS

timeline
Mar 2023 - Jul 2024
users
1,500+ total users
monthly Active
30 monthly active
subscribers
50+ paying subscribers
role
Solo Developer

DEVELOPMENT INSIGHTS

"D&D is about interacting with people. It's really important that you spend as little time fucking around trying to use your notes and as much time as possible actually interacting with the people around you in the game. There's only one or two clicks between any single thing in the entire app. It's really important to be able to take notes lightning fast and then have them get organized later. This is all pre-LLMs too—this is a big solo endeavor using my own fucking brain."

TECHNICAL CHALLENGES

Custom Markdown Linking System

The @note_name syntax was a nightmare to implement. When you create that link, it's clickable, and if you edit the name of the link, all the references to it have to also update. It's not like a normal markdown link where you just update the URL—here the text IS the URL, which makes it a lot more complicated. Writing custom markdown where an @ symbol turns something into a clickable link, but then deleting parts of it intelligently updates the link across all notes in the entire campaign.

Custom Calendar System

These were completely customizable calendars. Each GM can create a completely customized calendar for their campaign with their own number of weeks, number of days, number of months, every month with a different number of days. It supported all of that jazz, and that's just like a giant freaking mess. Keeping track of how Monday is a different day of the month, and those days are different per month each year as well. It's hellish. The system handles custom week lengths (e.g., 8-day weeks), custom month lengths (e.g., 13 months, 28 days each), and recurring events (e.g., always the third day of the fourth month of each year, or always the second Monday). All of this required a whole bunch of really annoying modulo math.

Workshop Sharing System

Built a rating system where users could publish calendars, compendia (encyclopedias/wikis), and random tables to a workshop. The data structures were kind of annoying because I was using a NoSQL database—I had to store the score both on the object that was in the store (for performance) and also save the score on the user. When someone subscribes to another user's wiki, all those pages become linkable from their own notes. That's kind of a headache to set up.

KEY FEATURES

  • Custom @note_name Linking
    Auto-updating references across all campaign notes
  • Fantasy Calendars
    Fully customizable with variable months/weeks/days
  • Workshop Marketplace
    Publish and subscribe to other GMs' content with ratings
  • Lightning-Fast UX
    1-2 clicks between any feature, command+scroll to switch notes
  • Scratch Pad System
    Hold Command and scroll to slide between notes horizontally
  • Random Tables
    Customizable random generators for in-game content

IMPACT & RESULTS

  • 1,500+ users discovered organically through Google Search
  • 50+ paying subscribers with freemium model
  • 30 monthly active users still finding it 3 years later
  • Zero marketing budget—all growth from word of mouth
  • User quote: "I've been looking for a tool that does everything that Co-GM does for ages. I can't believe I found this."
  • Still receiving Discord messages: 'Thank you so much for building this incredible tool'

RELATED WORK

Check out Mystica and Mercury Notes for related projects

Silas Rhyneer | Portfolio