feat(web): HeroUI v3 + HeroUI Pro site overhaul + dashboard rebuild#49
Merged
feat(web): HeroUI v3 + HeroUI Pro site overhaul + dashboard rebuild#49
Conversation
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
Owner
Author
|
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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 inCHANGELOG[Unreleased].Site (gh-pages)
<div>s instead of HeroUI Card so the macOS traffic-light header stays inline (HeroUI Card.Header BEM forces column layout).!w-autoto defeat the defaultw-fullthat was stacking tabs vertically./libdata + helpers:cli-commands,mcp-tools, command-palette context, plus changelog/docs/icons component bundles.Dashboard (npm-shipping)
qring status(andstatus_dashboardMCP 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 withversion,projectPath,scopes,protectedCount,manifest,policy,approvals,hooks,memoryKeys,auditMetrics.Test plan
pnpm devsmoke tests in browser:/docsFloating TOC tracks sections; copy buttons fire toasts/changelogfilter tabs render horizontallyqring statusMade with Cursor