Skip to content

feat(dashboard): compact landing page#95

Merged
duyet merged 3 commits into
mainfrom
codex/compact-homepage-redesign
May 18, 2026
Merged

feat(dashboard): compact landing page#95
duyet merged 3 commits into
mainfrom
codex/compact-homepage-redesign

Conversation

@duyet
Copy link
Copy Markdown
Owner

@duyet duyet commented May 18, 2026

Summary

  • simplify the public homepage to hero, feature cards, and API endpoints
  • apply a scoped Thariq-inspired landing visual system
  • replace linked landing SVG files with inline reusable visuals

Verification

  • bunx biome check packages/dashboard/src/
  • cd packages/dashboard && bunx tsc --noEmit
  • bun run build
  • browser QA desktop/mobile: no horizontal scroll, SVGs render, links correct

Summary by CodeRabbit

  • New Features

    • Redesigned landing page with new interactive visualizations including a runtime console preview and architecture diagram
    • Added dynamic visual components for use case demonstrations
  • Style

    • Enhanced landing page styling with new theme variables and component layer styles
    • Updated animations to use spring physics for smoother transitions
    • Improved UI card layouts with adjusted spacing and padding
  • Refactor

    • Streamlined landing page layout, focusing on core sections
    • Replaced static images with dynamic visual components for better interactivity

Review Change Stack

Redesign the public homepage with a compact Thariq-inspired visual treatment.

Keep homepage content focused on hero, feature cards, and API endpoints.

Replace external landing SVG assets with inline reusable visuals.

Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @duyet, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 18, 2026

Warning

Rate limit exceeded

@duyet has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 45 minutes and 32 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 33412e89-1039-4a25-865d-b71b13f1d09c

📥 Commits

Reviewing files that changed from the base of the PR and between 696a6de and 98e6b61.

📒 Files selected for processing (3)
  • packages/dashboard/src/app/_features.tsx
  • packages/dashboard/src/app/globals.css
  • packages/dashboard/src/components/landing/visuals.tsx
📝 Walkthrough

Walkthrough

The PR refactors the dashboard landing page to replace static image assets with React-based SVG visual components. A new visuals module exports HeroConsole, StateArchitectureDiagram, and UseCaseVisual components. The main page layout is simplified to show only Hero and Features sections. A comprehensive landing-page design system with theme variables and SVG styling rules is added. Motion transitions are updated to use spring animations, and card structures are reworked.

Changes

Landing page visual and layout refactor

Layer / File(s) Summary
Landing visual components foundation
packages/dashboard/src/components/landing/visuals.tsx
Introduces UseCaseVisualVariant type and three SVG rendering components: HeroConsole for runtime event console display, StateArchitectureDiagram for agent architecture flow, and UseCaseVisual for conditional variant-specific use-case illustrations.
Landing page design system and CSS
packages/dashboard/src/app/globals.css
Establishes .landing-page design system with custom theme properties, dark-mode overrides, typography, .landing-console layout components, .landing-svg-frame helpers, and comprehensive .svg-* styling rules for fills, strokes, fonts, and visual variants.
Landing page layout and hero rendering
packages/dashboard/src/app/page.tsx, packages/dashboard/src/app/_hero.tsx
Simplifies landing page to render only Hero and Features in main section; refactors Hero to render new HeroConsole component in motion container instead of icon-based signals; adds landing-page class to wrapper and updates imports.
Motion transitions and features card updates
packages/dashboard/src/components/landing/motion.tsx, packages/dashboard/src/app/_features.tsx
Updates landingItem, landingCard, and landingHover transitions to use spring animations with bounce: 0; refactors features card grid to use Card with size="sm", moving badge and description into stacked CardDescription layout.
How It Works diagram refactoring
packages/dashboard/src/components/landing/how-it-works.tsx
Replaces static next/image state architecture diagram with new StateArchitectureDiagram component wrapped in landing-svg-frame container.
Use Cases refactoring to visual variants
packages/dashboard/src/components/landing/use-cases-parts.tsx, packages/dashboard/src/components/landing/use-cases.tsx
Updates UseCaseItem type to use visual field (replacing image), restructures useCases data with visual variants, and switches rendering to UseCaseVisual component in landing-svg-frame--compact wrapper.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • duyet/agentstate#43: Refactors use-cases implementation from image-based to SVG-based visual rendering using similar component and data structure patterns.
  • duyet/agentstate#37: Modifies how-it-works landing section; this PR refactors its diagram rendering to use the new StateArchitectureDiagram component.
  • duyet/agentstate#38: Updates landing page composition in page.tsx with hero and example changes; this PR refactors the same file to simplify layout to Hero + Features only.

Poem

🐰 A landing page refactored with SVG delight,
Where visuals now render, replacing old static files tight,
HeroConsole glows, diagrams flow,
Motion springs bounce, letting designs grow! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title directly aligns with the primary objective: simplifying and redesigning the landing page with a more compact layout.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/compact-homepage-redesign

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the dashboard landing page by replacing static SVG images with a suite of React-based SVG components and a dedicated CSS theme layer. Significant updates include the introduction of the HeroConsole and StateArchitectureDiagram components, the transition of animations to a spring-based model, and a simplified page structure. Review feedback identifies an invalid HTML nesting issue in the features section, suggests accessibility improvements for decorative elements, and highlights potential whitespace issues in code block rendering.

Comment on lines 85 to 88
<CardDescription className="flex flex-col gap-2">
<Badge variant="secondary">{badge}</Badge>
<span>{description}</span>
</CardDescription>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The CardDescription component typically renders a <p> tag. Nesting a Badge (which is usually a <div>) and a flex flex-col container inside it results in invalid HTML (block-level elements inside a paragraph). It is better to use a div for the layout and keep CardDescription for the actual descriptive text.

Suggested change
<CardDescription className="flex flex-col gap-2">
<Badge variant="secondary">{badge}</Badge>
<span>{description}</span>
</CardDescription>
<div className="flex flex-col gap-2">
<Badge variant="secondary" className="w-fit">{badge}</Badge>
<CardDescription>{description}</CardDescription>
</div>

Comment on lines +7 to +9
<span />
<span />
<span />
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These span elements are purely decorative (used to render the window control circles) and should be hidden from assistive technologies to avoid confusing screen reader users.

Suggested change
<span />
<span />
<span />
<span aria-hidden="true" />
<span aria-hidden="true" />
<span aria-hidden="true" />

Comment on lines +15 to +23
<pre>
<code>{`POST /api/v1/conversations
Authorization: Bearer as_live_...

{
"messages": [{ "role": "user" }],
"metadata": { "agent": "support" }
}`}</code>
</pre>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The <pre> tag preserves all whitespace, including the newlines and indentation between the tags and the content. The current formatting will introduce unwanted leading/trailing whitespace and indentation in the rendered code block. It is best to keep the content flush with the tags.

          <pre><code>{"POST /api/v1/conversations\nAuthorization: Bearer as_live_...\n\n{\n  \"messages\": [{ \"role\": \"user\" }],\n  \"metadata\": { \"agent\": \"support\" }\n}"}</code></pre>

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/dashboard/src/app/globals.css`:
- Around line 122-495: Stylelint flagged a missing empty line before the
declaration "-webkit-font-smoothing: antialiased;" inside the .landing-page
rule; open the .landing-page rule (selector ".landing-page") and insert a single
blank line immediately before the "-webkit-font-smoothing: antialiased;"
declaration to match the project's spacing convention (also scan the ".dark
.landing-page" block for the same pattern and add a blank line there if
missing), then run the formatter/stylelint to verify the warning is resolved.

In `@packages/dashboard/src/components/landing/visuals.tsx`:
- Line 1: Export the UseCaseVisualVariant union so external modules can
reference it for type-safety; update the declaration of UseCaseVisualVariant
(used by the public component UseCaseVisual) to be exported (e.g., add the
export keyword) so callers can import and reuse the type in their own typings
and helpers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: caf257de-a3e4-4317-b02d-7e3522858f46

📥 Commits

Reviewing files that changed from the base of the PR and between fd8027a and 696a6de.

⛔ Files ignored due to path filters (5)
  • packages/dashboard/public/landing/analytics.svg is excluded by !**/*.svg
  • packages/dashboard/public/landing/chatbot.svg is excluded by !**/*.svg
  • packages/dashboard/public/landing/frameworks.svg is excluded by !**/*.svg
  • packages/dashboard/public/landing/sessions.svg is excluded by !**/*.svg
  • packages/dashboard/public/landing/state-architecture.svg is excluded by !**/*.svg
📒 Files selected for processing (9)
  • packages/dashboard/src/app/_features.tsx
  • packages/dashboard/src/app/_hero.tsx
  • packages/dashboard/src/app/globals.css
  • packages/dashboard/src/app/page.tsx
  • packages/dashboard/src/components/landing/how-it-works.tsx
  • packages/dashboard/src/components/landing/motion.tsx
  • packages/dashboard/src/components/landing/use-cases-parts.tsx
  • packages/dashboard/src/components/landing/use-cases.tsx
  • packages/dashboard/src/components/landing/visuals.tsx

Comment thread packages/dashboard/src/app/globals.css
Comment thread packages/dashboard/src/components/landing/visuals.tsx Outdated
duyet and others added 2 commits May 18, 2026 16:41
Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
@duyet duyet merged commit b91c454 into main May 18, 2026
4 checks passed
@duyet duyet deleted the codex/compact-homepage-redesign branch May 18, 2026 09:49
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