From 1b026bdcf110ac1f712ffca1730d5ccd562bf387 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 15 Jun 2026 14:50:53 +0000 Subject: [PATCH] Redesign homepage hero to Emergent Labs style - Full-viewport hero section with subtle grid background and radial fade - New headline: "What will you build today?" with cyan gradient on "build today" - Category tabs: Full Stack App, Mobile App, Landing Page, Brainstorm - Simplified prompt input with bottom toolbar (Claude 4.7 Opus badge, Public toggle, green send button) - Clickable example project cards (Task Manager, Real Estate CRM, SaaS Dashboard) - Scan demo and remaining page sections moved below the fold https://claude.ai/code/session_01VZghTZUYxGfvK8kfnujwT9 --- app/globals.css | 8 +++ app/page.tsx | 143 +++++++++++++++++++++------------------ components/hero-chat.tsx | 138 +++++++++++++++++++++++++------------ 3 files changed, 180 insertions(+), 109 deletions(-) diff --git a/app/globals.css b/app/globals.css index c63ec85..63b541b 100644 --- a/app/globals.css +++ b/app/globals.css @@ -15,6 +15,14 @@ 50% { opacity: 0.8; } } +/* Hero grid background */ +.hero-grid { + background-image: + linear-gradient(rgba(240, 246, 252, 0.035) 1px, transparent 1px), + linear-gradient(90deg, rgba(240, 246, 252, 0.035) 1px, transparent 1px); + background-size: 44px 44px; +} + :root { --background: oklch(0.95 0 0); --foreground: oklch(0.15 0 0); diff --git a/app/page.tsx b/app/page.tsx index 9f3bd5c..e3f4a12 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -183,11 +183,26 @@ export default async function HomePage({
-
-
+ {/* Hero — full viewport, grid background */} +
+ {/* radial fade to hide grid edges */} +
+
+
+
-
+ {/* Scan demo section */} +
+
+
@@ -221,78 +236,78 @@ export default async function HomePage({
-
-
-
- - - - RepoFuse Opportunity Scan - - - live - -
- -
-
- RepoFuse logo -
-
DealPatrol workspace
-
Analyzing 14 repos, 43 services, 2,813 files
-
+
+
+
+ + + + RepoFuse Opportunity Scan + + + live +
-
-
- - repofuse scan --find-subscription-products +
+
+ RepoFuse logo +
+
DealPatrol workspace
+
Analyzing 14 repos, 43 services, 2,813 files
+
-
-
Connected with read-only access
-
Mapped reusable billing, auth, and analytics logic
-
Detected 3 monetizable product wedges
+ +
+
+ + repofuse scan --find-subscription-products +
+
+
Connected with read-only access
+
Mapped reusable billing, auth, and analytics logic
+
Detected 3 monetizable product wedges
+
-
-
- {scanFindings.map((finding) => ( -
-
-
-

{finding.title}

-

Found in {finding.source}

-
- - {finding.score}% - -
-
- {finding.revenue} - +
+ {scanFindings.map((finding) => ( +
+
+
+

{finding.title}

+

Found in {finding.source}

+
- + className="rounded-lg px-2.5 py-1 font-mono text-xs font-black" + style={{ backgroundColor: `${finding.color}1A`, color: finding.color }} + > + {finding.score}% + +
+
+ {finding.revenue} + + + +
-
- ))} + ))} +
-
diff --git a/components/hero-chat.tsx b/components/hero-chat.tsx index e8caebd..7c2235e 100644 --- a/components/hero-chat.tsx +++ b/components/hero-chat.tsx @@ -1,7 +1,7 @@ 'use client' import { useState } from 'react' -import { ArrowRight, Github, Loader2, MessageSquareText, ShieldCheck, Sparkles } from 'lucide-react' +import { ArrowRight, Code2, Globe, Loader2, Smartphone, Sparkles, Zap } from 'lucide-react' type AuthResponse = { authenticated?: boolean @@ -14,10 +14,33 @@ function ideaParam(idea: string) { return encodeURIComponent(idea.trim()) } +const categories = [ + { id: 'fullstack', icon: Code2, label: 'Full Stack App' }, + { id: 'mobile', icon: Smartphone, label: 'Mobile App' }, + { id: 'landing', icon: Globe, label: 'Landing Page' }, + { id: 'brainstorm', icon: Sparkles, label: 'Brainstorm' }, +] + +const exampleCards = [ + { + title: 'Task Manager', + description: 'Build me a task manager with team collaboration, priorities, and deadline tracking', + }, + { + title: 'Real Estate CRM', + description: 'Build a CRM for managing property listings, client contacts, and deal pipelines', + }, + { + title: 'SaaS Dashboard', + description: 'Build a SaaS analytics dashboard with subscription billing and usage metrics', + }, +] + export function HeroChat() { const [message, setMessage] = useState('') const [submitted, setSubmitted] = useState(false) const [error, setError] = useState(null) + const [activeCategory, setActiveCategory] = useState(null) async function handleSubmit() { const idea = message.trim() @@ -63,68 +86,93 @@ export function HeroChat() { } return ( -
-
- - AI product discovery from your repositories +
+ {/* Badge */} +
+ + Start Experimenting
-

- What should your code become next? + {/* Headline */} +

+ What will you{' '} + + build today? +

-

- Type an idea, then RepoFuse matches it against your GitHub, GitLab, or Bitbucket repos to find reusable code, launch angles, and subscription-ready opportunities. -

- -
-
- - RepoFuse AI idea prompt - - read-only scan - -
+ {/* Category tabs */} +
+ {categories.map(({ id, icon: Icon, label }) => ( + + ))} +
-
-