Skip to content

feat(web): HeroUI v3 + HeroUI Pro site overhaul + dashboard rebuild#49

Merged
I4cTime merged 3 commits intodevelopfrom
feature/web-heroui-overhaul
Apr 25, 2026
Merged

feat(web): HeroUI v3 + HeroUI Pro site overhaul + dashboard rebuild#49
I4cTime merged 3 commits intodevelopfrom
feature/web-heroui-overhaul

Conversation

@I4cTime
Copy link
Copy Markdown
Owner

@I4cTime I4cTime commented Apr 25, 2026

Summary

Full overhaul of the marketing/docs site (web/) on HeroUI v3 + HeroUI Pro + Tailwind v4 + lucide-react, plus the status dashboard rebuild already documented in CHANGELOG[Unreleased].

Site (gh-pages)

  • New Hero with social-card art, install picker, TrustStrip KPIs (locale-stable, no hydration warnings), darker WebGL backdrop for contrast.
  • New conversion sections: WhyQRing, IntegrationsCarousel, LiveDemo + global CommandPalette (⌘K), AgentMode, CursorPlugin showcase, FAQ, FreeCallout, FinalCta.
  • Docs page rebuilt: pinned Floating TOC with manual scroll-spy + accurate active section, new MCP prompt cookbook with per-row copy-to-clipboard buttons + toasts, refined CLI reference list and CommandCard.
  • Navbar contrast lifted (secondary baseline, primary + bold for current page); custom navigate() handles same-page hash anchors and home-link scroll-to-top in App Router.
  • Terminal cards (TerminalCard, LiveDemo) use styled <div>s instead of HeroUI Card so the macOS traffic-light header stays inline (HeroUI Card.Header BEM forces column layout).
  • HeroUI Tabs across Hero, Features, McpSection, ChangelogList get !w-auto to defeat the default w-full that was stacking tabs vertically.
  • New /lib data + helpers: cli-commands, mcp-tools, command-palette context, plus changelog/docs/icons component bundles.

Dashboard (npm-shipping)

  • qring status (and status_dashboard MCP tool): KPI strip, sortable + searchable secrets table, manifest/policy/approvals/hooks/agent-memory panels, audit filters with action + source chips, top-bar pause/refresh/JSON controls, and keyboard shortcuts (/, P, R, Esc).
  • /api/status + SSE payload extended with version, projectPath, scopes, protectedCount, manifest, policy, approvals, hooks, memoryKeys, auditMetrics.
  • Search input survives the 5s SSE tick via a focus-preserving DOM swap (caret position + selection + scroll offset).

Test plan

  • CI green (typecheck, build, security)
  • Local pnpm dev smoke tests in browser:
    • Site loads, navbar links scroll/route correctly
    • /docs Floating TOC tracks sections; copy buttons fire toasts
    • /changelog filter tabs render horizontally
    • LiveDemo terminal animates and palette opens with ⌘K
  • Post-merge: dashboard rebuild verified on qring status

Made with Cursor

I4cTime added 2 commits April 25, 2026 15:27
Replaces the hand-rolled landing/docs/changelog pages with a HeroUI v3 +
HeroUI Pro implementation backed by Tailwind v4 and lucide-react, and
adds the customer-facing surfaces that were missing from the previous
build.

Site
- Hero rebuilt with social-card art, install-command picker (Tabs over
  pnpm/npm/yarn/bun/brew), TrustStrip KPIs, and locale-stable number
  formatting to eliminate hydration warnings.
- New sections: WhyQRing comparison table, IntegrationsCarousel,
  LiveDemo terminal driving the new global CommandPalette, AgentMode,
  CursorPlugin showcase, FAQ, FreeCallout, FinalCta.
- Floating documentation TOC: pinned-right sidebar with manual scroll-spy
  that survives dynamic content shifts and an accurate active-section
  highlight.
- MCP prompt cookbook gains a per-row copy button with success/failure
  toasts.
- Navbar contrast lifted (text-secondary baseline, primary + bold for
  the current page); Search and GitHub item brightened to match.
- Custom navigate() in Nav handles same-page hash anchors and
  scroll-to-top when reclicking the home link in App Router.
- Terminal cards (TerminalCard, LiveDemo) replaced HeroUI Card with
  styled divs to keep the macOS traffic-light header inline (HeroUI's
  Card.Header BEM defaults forced a column layout).
- Tabs across Hero, Features, McpSection, ChangelogList get !w-auto to
  override HeroUI's default w-full and stop vertical stacking.
- Background tokens darkened and #webgl-bg::after opacity bumped for
  better text contrast over the animated WebGL background.
- New /lib data + helpers: cli-commands, mcp-tools, command-palette
  context, plus changelog/docs/icons component bundles.

Dashboard (npm-shipping changes)
- Status dashboard rebuilt: KPI strip, sortable + searchable secrets
  table, manifest/policy/approvals/hooks/agent-memory panels, audit
  filters with action and source chips, top-bar pause/refresh/JSON
  controls, and keyboard shortcuts (/, P, R, Esc).
- /api/status + SSE payload extended with version, projectPath, scopes,
  protectedCount, manifest, policy, approvals, hooks, memoryKeys, and
  auditMetrics.
- Search input survives the 5s SSE tick via a focus-preserving DOM
  swap that keeps caret position, selection, and scroll offset.

Made-with: Cursor
The licensed @heroui-pro/react package runs a postinstall that calls the
HeroUI CDN. In CI it returns 'Access denied' because the runner has no
keyring (libsecret missing) and no HEROUI_AUTH_TOKEN env var, which
fails the Next.js workflow on every PR touching web/.

Wire the repo secret HEROUI_AUTH_TOKEN into the install steps of the
nextjs.yml and deploy-pages.yml workflows so the postinstall can fetch
the licensed bundle on the runner.

Made-with: Cursor
@I4cTime
Copy link
Copy Markdown
Owner Author

I4cTime commented Apr 25, 2026

Re-running CI with correct HEROUI_AUTH_TOKEN (CI token, not session JWT).

…s lint

react-hooks/set-state-in-effect flags the synchronous computeActive()
call inside useEffect because it cascades a setState during render.
Wrap the initial run in requestAnimationFrame so the lint rule is
happy and the active-section calculation still runs on the very next
frame after mount.

Made-with: Cursor
@I4cTime I4cTime merged commit 2f0a554 into develop Apr 25, 2026
4 checks passed
@I4cTime I4cTime deleted the feature/web-heroui-overhaul branch April 25, 2026 06:44
I4cTime added a commit that referenced this pull request Apr 25, 2026
* feat(web): HeroUI v3 + HeroUI Pro site overhaul + dashboard rebuild (#49)

* feat(web): full HeroUI v3 + HeroUI Pro overhaul of the marketing site

Replaces the hand-rolled landing/docs/changelog pages with a HeroUI v3 +
HeroUI Pro implementation backed by Tailwind v4 and lucide-react, and
adds the customer-facing surfaces that were missing from the previous
build.

Site
- Hero rebuilt with social-card art, install-command picker (Tabs over
  pnpm/npm/yarn/bun/brew), TrustStrip KPIs, and locale-stable number
  formatting to eliminate hydration warnings.
- New sections: WhyQRing comparison table, IntegrationsCarousel,
  LiveDemo terminal driving the new global CommandPalette, AgentMode,
  CursorPlugin showcase, FAQ, FreeCallout, FinalCta.
- Floating documentation TOC: pinned-right sidebar with manual scroll-spy
  that survives dynamic content shifts and an accurate active-section
  highlight.
- MCP prompt cookbook gains a per-row copy button with success/failure
  toasts.
- Navbar contrast lifted (text-secondary baseline, primary + bold for
  the current page); Search and GitHub item brightened to match.
- Custom navigate() in Nav handles same-page hash anchors and
  scroll-to-top when reclicking the home link in App Router.
- Terminal cards (TerminalCard, LiveDemo) replaced HeroUI Card with
  styled divs to keep the macOS traffic-light header inline (HeroUI's
  Card.Header BEM defaults forced a column layout).
- Tabs across Hero, Features, McpSection, ChangelogList get !w-auto to
  override HeroUI's default w-full and stop vertical stacking.
- Background tokens darkened and #webgl-bg::after opacity bumped for
  better text contrast over the animated WebGL background.
- New /lib data + helpers: cli-commands, mcp-tools, command-palette
  context, plus changelog/docs/icons component bundles.

Dashboard (npm-shipping changes)
- Status dashboard rebuilt: KPI strip, sortable + searchable secrets
  table, manifest/policy/approvals/hooks/agent-memory panels, audit
  filters with action and source chips, top-bar pause/refresh/JSON
  controls, and keyboard shortcuts (/, P, R, Esc).
- /api/status + SSE payload extended with version, projectPath, scopes,
  protectedCount, manifest, policy, approvals, hooks, memoryKeys, and
  auditMetrics.
- Search input survives the 5s SSE tick via a focus-preserving DOM
  swap that keeps caret position, selection, and scroll offset.

Made-with: Cursor

* ci(web): pass HEROUI_AUTH_TOKEN to install steps for @heroui-pro/react

The licensed @heroui-pro/react package runs a postinstall that calls the
HeroUI CDN. In CI it returns 'Access denied' because the runner has no
keyring (libsecret missing) and no HEROUI_AUTH_TOKEN env var, which
fails the Next.js workflow on every PR touching web/.

Wire the repo secret HEROUI_AUTH_TOKEN into the install steps of the
nextjs.yml and deploy-pages.yml workflows so the postinstall can fetch
the licensed bundle on the runner.

Made-with: Cursor

* fix(web): defer initial DocsToc compute via rAF to satisfy react-hooks lint

react-hooks/set-state-in-effect flags the synchronous computeActive()
call inside useEffect because it cascades a setState during render.
Wrap the initial run in requestAnimationFrame so the lint rule is
happy and the active-section calculation still runs on the very next
frame after mount.

Made-with: Cursor

* chore: bump version to v0.11.0

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant