diff --git a/frontend/src/landing/app/landing/page.tsx b/frontend/src/landing/app/landing/page.tsx index 9b70adb52..b11ec344d 100644 --- a/frontend/src/landing/app/landing/page.tsx +++ b/frontend/src/landing/app/landing/page.tsx @@ -7,7 +7,6 @@ import { LandingHowItWorks } from "../../components/LandingHowItWorks"; import { LandingArchitecture } from "../../components/LandingArchitecture"; import { LandingLiveDemo } from "../../components/LandingLiveDemo"; import { LandingSocialProof } from "../../components/LandingSocialProof"; -import { LandingCTA } from "../../components/LandingCTA"; import { LandingFooter } from "../../components/LandingFooter"; import { ScrollRevealProvider } from "../../components/ScrollRevealProvider"; @@ -24,7 +23,6 @@ export default function LandingPage() { - diff --git a/frontend/src/landing/components/LandingHero.tsx b/frontend/src/landing/components/LandingHero.tsx index a24d9d5fd..3df05310b 100644 --- a/frontend/src/landing/components/LandingHero.tsx +++ b/frontend/src/landing/components/LandingHero.tsx @@ -29,33 +29,53 @@ function DownloadIcon({ className = "" }: { className?: string }) { ); } -const projects = [ +const appProjects = [ { name: "api-gateway", + id: "api-gateway", count: 4, - tasks: ["Split terminal mux responsibilities", "fix auth timeout retry loop", "add rate limit headers"], + sessions: [ + { title: "Split terminal mux responsibilities", zone: "working" }, + { title: "fix auth timeout retry loop", zone: "error" }, + { title: "add rate limit headers", zone: "pending" }, + ], }, { name: "webgl-preview", + id: "webgl-preview", count: 8, - tasks: ["Restore fallback renderer affordance", "cache compiled shader programs", "ship frame statistics overlay"], + sessions: [ + { title: "Restore fallback renderer affordance", zone: "warning" }, + { title: "cache compiled shader programs", zone: "error" }, + { title: "ship frame statistics overlay", zone: "pending" }, + ], }, { name: "mobile-shell", + id: "mobile-shell", count: 2, - tasks: ["repair back swipe gesture", "profile sheet accessibility pass"], + sessions: [ + { title: "repair back swipe gesture", zone: "working" }, + { title: "profile sheet accessibility pass", zone: "success" }, + ], }, { name: "billing-portal", + id: "billing-portal", count: 2, - tasks: ["invoice CSV export", "tax id validation errors"], + sessions: [ + { title: "invoice CSV export", zone: "pending" }, + { title: "tax id validation errors", zone: "error" }, + ], }, ]; -const columns = [ +const appColumns = [ { title: "Working", - color: "#ffb454", + level: "working", + color: "#f59f4c", + glow: "rgba(245,159,76,0.07)", cards: [ { status: "Working", @@ -68,7 +88,9 @@ const columns = [ }, { title: "Needs you", - color: "#ff6b6b", + level: "action", + color: "#e8c14a", + glow: "rgba(232,193,74,0.06)", cards: [ { status: "CI failed", @@ -81,7 +103,9 @@ const columns = [ }, { title: "In review", - color: "#8fb7ff", + level: "pending", + color: "#646a73", + glow: "rgba(255,255,255,0.02)", cards: [ { status: "Review pending", @@ -94,17 +118,19 @@ const columns = [ }, { title: "Ready to merge", - color: "#72e29b", + level: "merge", + color: "#74b98a", + glow: "rgba(116,185,138,0.07)", cards: [ { - status: "Mergeable", + status: "Ready", agent: "cursor", title: "Build end-to-end onboarding test for published npm package", branch: "test/onboarding-harness", meta: "PR #204 · approved", }, { - status: "Checks passed", + status: "Approved", agent: "aider", title: "publish linux desktop install path", branch: "docs/linux-install", @@ -206,7 +232,6 @@ function SidebarIcon({ className = "" }: { className?: string }) { function HeroDashboardMockup() { const [activeProject, setActiveProject] = useState("api-gateway"); const [activeCard, setActiveCard] = useState("fix auth timeout retry loop"); - const [activeProjectAction, setActiveProjectAction] = useState("api-gateway-board"); const [sidebarOpen, setSidebarOpen] = useState(true); const [openProjects, setOpenProjects] = useState>({ "api-gateway": true, @@ -225,150 +250,124 @@ function HeroDashboardMockup() { return (
-
-
+
- -
-
-
-

Board

-

+

+
+
+

Board

+ Live agent sessions flowing from work → review → merge. -

+
-
+
-
- {columns.map((column) => ( -
-
-
- - {column.title} -
- {column.cards.length} -
-
- {column.cards.map((card) => ( - - ))} -
-
- ))} + {column.title} +
+ + {column.cards.length} + +
+
+
+ {column.cards.map((card) => ( + + ))} +
+
+ + ))} +
+
+
+
+ + + Done / Terminated + + 3 +
@@ -484,6 +523,20 @@ function HeroDashboardMockup() { ); } +function SessionDot({ zone }: { zone: string }) { + const color = + zone === "working" + ? "#f59f4c" + : zone === "warning" + ? "#e8c14a" + : zone === "error" + ? "#ef6b6b" + : zone === "success" + ? "#74b98a" + : "#646a73"; + return ; +} + export function LandingHero() { return (

Stop babysitting coding agents. diff --git a/frontend/src/landing/components/LandingNav.tsx b/frontend/src/landing/components/LandingNav.tsx index 5a34a63a3..518f2f9bd 100644 --- a/frontend/src/landing/components/LandingNav.tsx +++ b/frontend/src/landing/components/LandingNav.tsx @@ -2,14 +2,6 @@ import { useEffect, useState } from "react"; -function GithubIcon({ className = "" }: { className?: string }) { - return ( - - ); -} - function ArrowUpRightIcon({ className = "" }: { className?: string }) { return (