Skip to main content
Three surfaces, one database. That’s the whole mental model, and almost every question about where do I do this? answers itself once it lands.

The site

dontmisstwice.orgWhat the public sees. Rosters, tournaments, scrim results, media, spotlight, stats. It reads from the database live — there is nothing to publish or rebuild.

Dashboard

/adminWhere staff run the org. Every word and image on the public site is editable here, alongside rosters, tryouts, events, and the audit log.

The bot

In DiscordThe same operations, without leaving Discord. It also does what only a bot can: sync roles, mirror announcements, and archive channels.
Discord and the dashboard are equals, not a copy and an original. A roster move typed in Discord writes the same history row, fires the same role sync, and hits the same audit log as one clicked on the dashboard. Use whichever is closer to hand.

The database is the source of truth

Discord roles are a reflection of the roster, not the roster itself. If the two ever disagree — someone hand-edits a role, or Discord drops a request — the database wins and the bot re-applies it within two minutes.
Don’t manage competitive roles by hand. You’ll just be overruled on the next sync, and you’ll have spent the afternoon on it.

What lives where

Division and roster pages, tournament pages with live signups and brackets, the scrim schedule and record, media, spotlight, the public archive, stats, partners, and the join and contact pages.
Every piece of that content, plus the things the public never sees: roster operations, the tryout queue and trials, lineups, entrant management, analytics, and the audit log.
Role syncing, announcement mirroring, channel archiving and transcripts, self-service availability, and tryout applications. Anything that needs to reach into Discord rather than read from the database.

Where to go next

Editing the site

Change any copy, image, or page on the public site.

Rosters

Divisions, tiers, and moving players between them.