Hub Dashboard
The composition pattern for a course-docs landing page (.hub) — head + search + grouped doc cards (courses) + quick links (course resources). The server computes docsNav + MD and injects them as props (SSOT); the client renders only the grid from the data it receives.
Composition
Head (title + lead) → Search → full-bleed divider → “Courses” card grid → divider → “Course Resources” quick links.
Course Resources
Search and browse course documents.
Search docs — title · summary · body
Courses
Overview4 min
Schedule & Structure6 min
Participant Roles3 min
Course Resources
Register for Courses ↗
Self-Assessment ↗
Rules
Data SSOT
The server (page.tsx) computes docsNav + MD and injects them as props. Never hardcode data on the client.
Dividers
Use a full-bleed .hubRule at every section boundary.