From a1fc45dec6c7c396f8cd2afa429b9362a50cddca Mon Sep 17 00:00:00 2001 From: Taras Mankovski <74687+taras@users.noreply.github.com> Date: Fri, 21 Aug 2026 19:48:24 -0400 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=8E=A8=20Rebuild=20the=20home=20page?= =?UTF-8?q?=20from=20its=20design=20canvas,=20and=20aim=20the=20nav=20at?= =?UTF-8?q?=20its=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The home page now argues the product the way the Home mock does: a hero that names the problem, then README-as-a-CLI, agents, runtime, composition, durability, and install. Every class it uses already exists in site/assets/styles.css, because the design system's tokens and patterns were transcribed from it — so the stylesheet is untouched. Code samples are token arrays rendered by one Source component rather than twenty-one hand-written span trees. The header's three old anchors named sections that no longer exist. It now carries the mock's six, keeping Docs and GitHub, which the mock omits only because it describes the home page alone. --- site/components/Header.tsx | 18 +- site/routes/index.tsx | 1527 +++++++++++++++++++++--------------- 2 files changed, 902 insertions(+), 643 deletions(-) diff --git a/site/components/Header.tsx b/site/components/Header.tsx index 6dbd135ed..2d2b4efcb 100644 --- a/site/components/Header.tsx +++ b/site/components/Header.tsx @@ -8,6 +8,16 @@ const LINK = const LINK_ACTIVE = "font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--green);border-bottom:var(--rule) solid var(--green);padding-bottom:1px;"; +/** The home page's sections, in the order they appear on it. */ +const SECTIONS = [ + { href: "/#readme", label: "README" }, + { href: "/#agent", label: "Agents" }, + { href: "/#runtime", label: "Runtime" }, + { href: "/#compose", label: "Compose" }, + { href: "/#durability", label: "Durability" }, + { href: "/#install", label: "Install" }, +]; + /** `active` marks the top-level section the current page belongs to. */ export function Header({ active }: { active?: "docs" } = {}) { return ( @@ -20,9 +30,11 @@ export function Header({ active }: { active?: "docs" } = {}) {