> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dontmisstwice.org/llms.txt
> Use this file to discover all available pages before exploring further.

# The shape of it

> Three surfaces, one database — the mental model that answers most 'where do I do this?' questions.

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.

<CardGroup cols={3}>
  <Card title="The site" icon="globe" href="https://dontmisstwice.org">
    **dontmisstwice.org**

    What the public sees. Rosters, tournaments, scrim results, media, spotlight,
    stats. It reads from the database live — there is nothing to publish or
    rebuild.
  </Card>

  <Card title="Dashboard" icon="gauge">
    **/admin**

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

  <Card title="The bot" icon="discord">
    **In Discord**

    The same operations, without leaving Discord. It also does what only a bot
    can: sync roles, mirror announcements, and archive channels.
  </Card>
</CardGroup>

<Note>
  **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.
</Note>

## 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.

<Warning>
  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.
</Warning>

## What lives where

<AccordionGroup>
  <Accordion title="On the public site" icon="globe">
    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.
  </Accordion>

  <Accordion title="On the dashboard" icon="gauge">
    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.
  </Accordion>

  <Accordion title="Only in Discord" icon="discord">
    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.
  </Accordion>
</AccordionGroup>

## Where to go next

<Columns cols={2}>
  <Card title="Editing the site" icon="pen-to-square" href="/site-bot/site-content">
    Change any copy, image, or page on the public site.
  </Card>

  <Card title="Rosters" icon="users" href="/site-bot/rosters">
    Divisions, tiers, and moving players between them.
  </Card>
</Columns>
