From 44f6c4b11b4f8c7a6ceef2c4455c182ee62cd68e Mon Sep 17 00:00:00 2001 From: Rohit Ghumare Date: Sat, 16 May 2026 10:01:11 +0100 Subject: [PATCH] =?UTF-8?q?feat(website):=20hero=20rebuild=20=E2=80=94=20n?= =?UTF-8?q?px=20CTA=20+=20inline=20FeaturedIn=20+=20SSR=20star=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Five user-reported issues against agent-memory.dev v0.9.16: 1. AGENT/MEMORY title was clamp(54px, 12vw, 160px) — eating ~half the viewport on most desktop widths and forcing FeaturedIn below the fold. Reduced to clamp(44px, 9vw, 124px). Mobile-stacked variant now clamp(40px, 14vw, 72px) — cleaner. 2. Primary CTA was a generic "START IN 30 SECONDS" button that anchored to #install. Replaced with a copyable terminal command — `$ npx @agentmemory/agentmemory` rendered as a gold-bordered cell with "CLICK TO COPY" affordance. Copy → clipboard, transient "COPIED" state. Matches what users actually type. 3. FeaturedIn was a standalone section below the fold. Now inlined inside the hero (compact mode — no border, no own padding, transparent background) so AlphaSignal / Agentic AI Foundation / Trendshift validation lands above the fold. 4. Star count was missing from the hero CTA button. The component only fetched client-side from unauthenticated github.com/api which is rate-limited to ~60 req/hr/IP — first paint had no count, often forever on mobile (which is what the user screenshot showed). Hero is now an async server component; calls lib/github.ts fetchRepoStats (same path Nav already uses), passes the SSR'd count into GitHubStarButton via new optional initialStars prop. Client-side refetch still fires in useEffect as a best-effort refresh. 5. Mobile layout was unverified. Tightened all clamp() values, added explicit @media (max-width: 760px) breakpoint that drops padding, stacks the title, and reduces the chip size. The new HeroNpxCommand has its own mobile breakpoint at 640px that hides the "CLICK TO COPY" hint and stretches to full width. CTA stacks vertically now: copyable command (primary, gold border) on row 1, then "SEE IT MOVE" + STAR-with-count on row 2. FeaturedIn strip sits below row 2 as part of the above-the-fold validation. Build clean. No new deps. --- website/app/page.tsx | 2 - website/components/FeaturedIn.module.css | 9 +++ website/components/FeaturedIn.tsx | 15 ++++- website/components/GitHubStarButton.tsx | 16 +++-- website/components/Hero.module.css | 43 ++++++++---- website/components/Hero.tsx | 24 ++++--- website/components/HeroNpxCommand.module.css | 69 ++++++++++++++++++++ website/components/HeroNpxCommand.tsx | 33 ++++++++++ website/lib/generated-meta.json | 4 +- 9 files changed, 186 insertions(+), 29 deletions(-) create mode 100644 website/components/HeroNpxCommand.module.css create mode 100644 website/components/HeroNpxCommand.tsx diff --git a/website/app/page.tsx b/website/app/page.tsx index 026f43d2..e5946910 100644 --- a/website/app/page.tsx +++ b/website/app/page.tsx @@ -1,7 +1,6 @@ import { ScrollProgress } from "@/components/ScrollProgress"; import { Nav } from "@/components/Nav"; import { Hero } from "@/components/Hero"; -import { FeaturedIn } from "@/components/FeaturedIn"; import { Stats } from "@/components/Stats"; import { Primitives } from "@/components/Primitives"; import { Features } from "@/components/Features"; @@ -21,7 +20,6 @@ export default function Page() {