MinMaxHub
Documentation
  • Introduction
  • Architecture
  • Frontend
Domains
  • Nodes
  • Entities
  • Consensus
  • Suggestions
Resources
  • API Reference

Copyright 2026 MinMaxHub

  • Documentation
  • Domains
  • API Reference
IntroductionArchitectureFrontend
powered by Zudoku
Documentation

Frontend

The MinMaxHub frontend is a Next.js application using the App Router. It serves as the public-facing read layer for consensus content and provides authenticated interfaces for content creation and administration.

Routing Zones

The application is organized into four layout zones:

ZoneURL PatternPurpose
Landing/Marketing and landing page
PublicGeneral pagesLogin, user profiles, general pages
Entity Pages/{slug-path}Content pages resolved by URL slug
Admin/admin/*Content management (authenticated only)

URL Structure

Content pages are accessed via their slug path. For example, a "Bard" class page under "D&D 3.5e" might live at /dnd/dnd-35e/classes/bard. The URL is resolved to either a node (folder listing) or an entity (content page).

Entity Pages

Entity pages display consensus content assembled from community suggestions. Each page is built from a layout that defines its sections (topics), and each section shows the winning suggestion as determined by the consensus algorithm.

Pages support:

  • Star filtering -- filter content by star rating (1-5)
  • Rating source toggle -- switch between community averages and your own ratings
  • Sidebar navigation -- browse the page's layout sections
  • Comments -- discussion section at the bottom

Item Detail Pages

When navigating to a specific item within a collection (e.g., a single spell in a spell list), the item detail page shows:

  • The current consensus value for that item
  • All competing suggestions, ranked by score, with vote controls
  • A form for submitting new suggestions (authenticated users only)

Authentication

Requests to the admin area require a valid session. Unauthenticated visitors are redirected to the login page.

For client-side operations, the useAuth() hook provides:

  • user -- the current user object
  • isAuthenticated -- boolean authentication state
  • logout() -- sign out
  • loginWithProvider() -- sign in via a supported provider

Server-side pages can check authentication status to conditionally render content or protect actions.

Theme System

Nine themes are available:

ThemeStyle
ParchmentLight
ObsidianDark
EdgerunnersCyberpunk
InkwellLofi
Verdant WildsForest
BloodmoonDracula
Arcane PulseSynthwave
Golden ScrollCaramellatte
ShadowFellBlack

The selected theme persists across sessions. A script runs before React hydrates to prevent flash of unstyled content on page load.

Static Generation

Entity pages are statically generated for fast load times. When consensus is recomputed, the affected page is automatically invalidated and re-rendered on the next visit. This means content updates are reflected within seconds without requiring a full site rebuild.

Last modified on April 2, 2026
Architecture
On this page
  • Routing Zones
    • URL Structure
  • Entity Pages
    • Item Detail Pages
  • Authentication
  • Theme System
  • Static Generation