Documentation
Dashboard

Tab Reference

Three hubs at the top, sub-tabs underneath. Here's every tab, what it shows, and which file owns it.

URL state
Hub and tab state lives in the URL: ?hub=client&tab=home (default) or ?hub=reporting&tab=pipeline or ?hub=info. Both client and admin can see Client Hub and Client Info; Reporting is admin-only today.

HubNav (top dark bar)

Sticky 56px black bar. Left side: client logo + name + tier badge. Center: three hub tabs. Right: Book a Call + Submit a Request CTAs. Mobile collapses non-essential elements.

HubURLVisible toOwns the page
Client Hub?hub=clientAdmin + ClientClientPortalTab + new HomeSection
Reporting?hub=reportingAdmin (today)Existing render functions inside ClientDashboard
Client Info?hub=infoAdmin + ClientClientInfoSection (single page, no sub-tabs)

Client Hub sub-tabs

SubNav array lives at src/components/portal/nav/SubNav.tsx as CLIENT_HUB_TABS.

Sub-tabStatusRenders
HomeliveNew HomeSection — bento grid + program timeline + GHL pipeline strip + quick actions + pillar health.
OnboardingplannedComingSoonSection placeholder. Phase 11.
ScorecardliveExisting ScorecardSection routed via the legacy ClientPortalTab with forcedSubTab.
Game PlanliveExisting GamePlanSection (forcedSubTab="gameplan").
DeliverablesliveExisting DeliverablesSection (forcedSubTab="deliverables"). Phase 6 will overhaul it.
Wins & ProgressplannedComingSoonSection placeholder. Phase 4.
Content & AuthorityliveExisting ContentTrackerSection (forcedSubTab="content"). Phase 9 will mirror the CBO Content Plan structure.
Meeting NotesplannedComingSoonSection placeholder. Phase 5.
Resources & DocsliveExisting DocumentsSection (forcedSubTab="documents"). Phase 10 will add the media-submission iframe.
Billing & PackageplannedComingSoonSection placeholder. Phase 12.

Reporting Dashboard sub-tabs

Built on top of the existing render functions in ClientDashboard.tsx (renderPaidMarketing, renderSocialMedia, renderWebsite, renderSEO, renderLocalSEO, renderEmailSMS).

Sub-tabStatusRenders
Reporting HomeplannedComingSoonSection placeholder. Phase 3 will build the aggregate cross-channel summary.
Pipeline OverviewliveExisting PipelineSection (forcedSubTab="pipeline"). Live GHL data with the date-range fix shipped April 2026.
Website PerformanceliverenderWebsite() — GA4 traffic, conversion rate, PageSpeed gauges, Microsoft Clarity (currently always hidden).
SEO & AEO PerformanceliverenderSEO() + renderLocalSEO() stacked. Organic search, keyword rankings (DataForSEO), backlinks, Local/GBP, geo-grid embeds.
Paid AdsliverenderPaidMarketing() — Google Ads, Meta Ads, ROAS.
Social MedialiverenderSocialMedia() — Social engagement (n8n), YouTube.
Email & AutomationliverenderEmailSMS() — Email/SMS counts (n8n), Summary card.
Calculated KPIs absorbed
The legacy "Calculated KPIs" tab is gone. Its content (Cost/Lead, Cost/Appointment, Cost/Sale, Cost/Quote, CAC) merges into Reporting Home when Phase 3 lands. Until then those metrics show on the Pipeline Overview card under "Lead Costs / Rates".

Client Info — single page

No sub-tabs. The SubNav component returns null when hub === 'info'. Bento grid covers 8 cards in a 12-column layout; spec lives in the Client Info Hub page.

Responsive behaviour

Each render function uses grid-cols-12 gap-4 with span classes (5/6/7/12) responsive at lg. Belowlg (1024px) every tile collapses to span-12. The HubNav hides the FPM brand text on small screens; sub-nav scrolls horizontally on mobile.