BBS Menu Design for dungeon.club

What the post-login “main menu” should be — treating dungeon.club as a place you log into, not a dashboard you inspect.

Implementation status (2026-04-14)

Bulletins + live presence shipped#102 / PR #103. Landed in shadcn, not terminal — the authenticated portal isn’t ready to move off the existing character-sheet aesthetic yet. Terminal / sacred styling stays scoped to the unauthenticated surfaces (landing, login, signup, password flows) from PR #100. The B hotkey is wired; the rest of the hotkey table below (C/J/Q/R/G/T/A/M) is still a follow-up.

This doc remains the north-star exploration; it describes the direction, not the current visual state of the portal.

Starting point

The current dashboard nav (post-#58) is already BBS-shaped:

  • Character — character sheet (level, XP, points, tier, class, buffs)
  • Activity — journal / log
  • Quests — achievement system (not yet built)
  • Rewards — redemption catalog
  • Guild — hall / leaderboard / supporters / tiers

This is already a fantasy-RPG BBS main menu in shape. The question is what’s missing to make it feel like a place, not a tool.

What classic BBSes had that we don’t

High-leverage additions

  1. Bulletins / news — sysop posts pinned at login. Pre-web, this was how you learned what was happening on a board. For us: “what’s happening at the guild this week” — new arrivals on the shelves, tournaments, staff picks, events. Replaces the generic dashboard landing with something that changes. Low-lift, reuses existing Payload CMS as the editor.
  2. Presence / who’s online — BBS users cared who else was logged in. We already have live check-in SSE infrastructure (PR #96). A “currently in the hall” line on landing and dashboard (nicknames + class + level, honoring kiosk privacy rules) is social proof + “a place” feeling with near-zero new data plumbing.
  3. Live chat / tavern — classic BBSes had sysop chat and multi-user chat. Discord does most of this for us, but framing Discord access inside the terminal (as a menu item labeled “tavern,” not an external button) keeps the fiction intact. Deeper: a read-only preview of recent Discord messages on the menu.
  4. Sysop / message the guildmaster — a direct line to staff. Tiny feature, big flavor. Goes into Payload as a simple message collection; staff reply via email or admin.

Fantasy-specific additions

  1. Archives — the shop’s inventory surfaced inside the guild. Books you can browse and want-list. Tier-gated digital ebook shelf per ebook-access-model. Turns the BBS from “loyalty tracker” into “library you log into from home.”
  2. Cartography — the network map. Empty for now (Dungeon Books is the only shop) but meaningful the moment a second shop joins. Seeds the multi-guild vision on the menu before it’s real. Could render as an ASCII map of JC/NYC/SF placeholders even while most are grayed out.

What not to copy from BBSes

  • File areas / warez — not relevant; we’re not a download site.
  • Session time limits — hostile UX; BBSes had them because phone lines were scarce.
  • Door games as separate sub-apps — our Quests system covers this; no need for a distinct “games” menu.

Strongest picks for the near term

  • Bulletins + live presence are the highest value for the lowest effort. Both reuse data we already collect. Both change the menu from “tool” to “place” — which is the whole point of the .club framing.
  • Everything else (Archives, Cartography, Sysop inbox) is downstream and worth sketching but not urgent.

BBS menus are hotkey-driven with single-letter commands. Our SacredActionButton already supports a hotkey prop. Worth committing to a consistent hotkey table early so the menu feels learnable rather than decorative:

KeyDestination
CCharacter
JJournal (Activity)
QQuests
RRewards
GGuild (hall)
BBulletins (proposed)
TTavern (proposed — Discord)
AArchives (proposed)
MMap / Cartography (proposed)
?Help
/Quit / log out