From dcd10061acfeaf7ea7ec6bed41697e287b4bf9d2 Mon Sep 17 00:00:00 2001 From: codebanditssss Date: Mon, 29 Jun 2026 03:41:59 +0530 Subject: [PATCH] navbar and hero section fixed --- frontend/src/landing/app/layout.tsx | 16 +- .../landing/components/LandingAgentsBar.tsx | 73 ++- .../src/landing/components/LandingCTA.tsx | 4 +- .../src/landing/components/LandingHero.tsx | 564 +++++++++++++++--- .../src/landing/components/LandingNav.tsx | 205 ++++--- .../src/landing/components/LandingVideo.tsx | 9 +- .../src/landing/content/docs/installation.mdx | 81 ++- frontend/src/landing/styles/globals.css | 79 ++- 8 files changed, 785 insertions(+), 246 deletions(-) diff --git a/frontend/src/landing/app/layout.tsx b/frontend/src/landing/app/layout.tsx index 4ccd6f955..34edc223c 100644 --- a/frontend/src/landing/app/layout.tsx +++ b/frontend/src/landing/app/layout.tsx @@ -8,19 +8,9 @@ export const metadata: Metadata = { const themeScript = ` (() => { - try { - const stored = window.localStorage.getItem("ao-theme"); - const theme = stored === "light" || stored === "dark" - ? stored - : window.matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark"; - document.documentElement.dataset.theme = theme; - document.documentElement.classList.toggle("dark", theme === "dark"); - document.documentElement.style.colorScheme = theme; - } catch { - document.documentElement.dataset.theme = "dark"; - document.documentElement.classList.add("dark"); - document.documentElement.style.colorScheme = "dark"; - } + document.documentElement.dataset.theme = "dark"; + document.documentElement.classList.add("dark"); + document.documentElement.style.colorScheme = "dark"; })(); `; diff --git a/frontend/src/landing/components/LandingAgentsBar.tsx b/frontend/src/landing/components/LandingAgentsBar.tsx index fa776b773..704b69c9b 100644 --- a/frontend/src/landing/components/LandingAgentsBar.tsx +++ b/frontend/src/landing/components/LandingAgentsBar.tsx @@ -1,17 +1,32 @@ const agents = [ - { name: "Claude Code", src: "/docs/logos/claude-code.svg", alt: "Claude Code", className: "h-7 sm:h-8 lg:h-10" }, - { name: "Codex", src: "/docs/logos/codex.svg", alt: "Codex", className: "h-7 sm:h-8 lg:h-10 rounded-md" }, - { name: "Cursor", src: "/docs/logos/cursor.svg", alt: "Cursor", className: "agent-logo-contrast h-7 sm:h-8 lg:h-10" }, - { name: "Aider", src: "/docs/logos/aider.png", alt: "Aider", className: "h-6 sm:h-7 lg:h-8" }, - { - name: "OpenCode", - src: "/docs/logos/opencode.svg", - alt: "OpenCode", - className: "agent-logo-contrast h-7 sm:h-8 lg:h-10", - }, + { name: "Claude Code", id: "claude-code", src: "/docs/logos/claude-code.svg" }, + { name: "Codex", id: "codex", src: "/docs/logos/codex.svg" }, + { name: "Aider", id: "aider", src: "/docs/logos/aider.png" }, + { name: "OpenCode", id: "opencode", src: "/docs/logos/opencode.svg" }, + { name: "Grok", id: "grok", src: "https://www.google.com/s2/favicons?domain=x.ai&sz=64" }, + { name: "Droid", id: "droid", src: "https://www.google.com/s2/favicons?domain=factory.ai&sz=64" }, + { name: "Amp", id: "amp", src: "https://www.google.com/s2/favicons?domain=ampcode.com&sz=64" }, + { name: "Agy", id: "agy", src: "https://www.google.com/s2/favicons?domain=antigravity.google&sz=64" }, + { name: "Crush", id: "crush", src: "https://www.google.com/s2/favicons?domain=charm.land&sz=64" }, + { name: "Cursor", id: "cursor", src: "/docs/logos/cursor.svg" }, + { name: "Qwen", id: "qwen", src: "https://www.google.com/s2/favicons?domain=qwenlm.github.io&sz=64" }, + { name: "Copilot", id: "copilot", src: "https://www.google.com/s2/favicons?domain=github.com&sz=64" }, + { name: "Goose", id: "goose", src: "https://www.google.com/s2/favicons?domain=goose-docs.ai&sz=64" }, + { name: "Auggie", id: "auggie", src: "https://www.google.com/s2/favicons?domain=augmentcode.com&sz=64" }, + { name: "Continue", id: "continue", src: "https://www.google.com/s2/favicons?domain=continue.dev&sz=64" }, + { name: "Devin", id: "devin", src: "https://www.google.com/s2/favicons?domain=cognition.ai&sz=64" }, + { name: "Cline", id: "cline", src: "https://www.google.com/s2/favicons?domain=cline.bot&sz=64" }, + { name: "Kimi", id: "kimi", src: "https://www.google.com/s2/favicons?domain=kimi.com&sz=64" }, + { name: "Kiro", id: "kiro", src: "https://www.google.com/s2/favicons?domain=kiro.dev&sz=64" }, + { name: "Kilo Code", id: "kilocode", src: "https://www.google.com/s2/favicons?domain=kilocode.ai&sz=64" }, + { name: "Vibe", id: "vibe", src: "https://www.google.com/s2/favicons?domain=mistral.ai&sz=64" }, + { name: "Pi", id: "pi", src: "https://www.google.com/s2/favicons?domain=github.com&sz=64" }, + { name: "Autohand", id: "autohand", src: "https://www.google.com/s2/favicons?domain=npmjs.com&sz=64" }, ]; export function LandingAgentsBar() { + const marqueeAgents = [...agents, ...agents]; + return (
01 - coverage

- One daemon. Twenty-three agent harnesses. + One daemon. 23 agent harnesses.

@@ -33,21 +48,29 @@ export function LandingAgentsBar() {

-
- {agents.map((agent) => ( -
-
- {agent.alt} +
+
+
+
+ {marqueeAgents.map((agent, index) => ( +
+
+ +
+
+ {agent.name} +
-
- {agent.name} -
-
- ))} + ))} +
diff --git a/frontend/src/landing/components/LandingCTA.tsx b/frontend/src/landing/components/LandingCTA.tsx index dcb3bf8d8..862f65156 100644 --- a/frontend/src/landing/components/LandingCTA.tsx +++ b/frontend/src/landing/components/LandingCTA.tsx @@ -60,8 +60,8 @@ export function LandingCTA() { target="_blank" rel="noreferrer" data-testid="cta-github-btn" - className="group inline-flex items-center gap-2 rounded-lg bg-[color:var(--accent)] px-6 py-3.5 text-[15px] font-semibold text-white shadow-[0_0_0_1px_rgba(255,255,255,0.1)_inset,0_8px_24px_-8px_rgba(77,141,255,0.6)] transition-all hover:brightness-110" - style={{ color: "#fff" }} + className="group inline-flex items-center gap-2 rounded-lg bg-[color:var(--accent)] px-6 py-3.5 text-[15px] font-semibold shadow-[0_0_0_1px_rgba(255,255,255,0.1)_inset,0_8px_24px_-8px_rgba(130,170,255,0.42)] transition-all hover:brightness-110" + style={{ color: "#081225" }} > Star on GitHub · 7.7k diff --git a/frontend/src/landing/components/LandingHero.tsx b/frontend/src/landing/components/LandingHero.tsx index 3558f8ea0..e93084cff 100644 --- a/frontend/src/landing/components/LandingHero.tsx +++ b/frontend/src/landing/components/LandingHero.tsx @@ -1,3 +1,7 @@ +"use client"; + +import { useState } from "react"; + function GithubIcon({ className = "" }: { className?: string }) { return (
+
+
+
+ + +
+
+
+

Board

+

Live agent sessions flowing from work → review → merge.

+
+
+ + +
+
+ +
+ {columns.map((column) => ( +
+
+
+ + {column.title} +
+ {column.cards.length} +
+
+ {column.cards.map((card) => ( + + ))} +
+
+ ))} +
+
+
+
+
+ ); +} + export function LandingHero() { return (
-
-
-
- Agent work, from issue to merge -
-

+

+ + Stop babysitting coding agents. + + + Start merging real work. + +

+

+ Free, Apache 2.0 licensed, and runs on your laptop. Fork it, inspect it, and ship your first + parallel agent workflow in minutes. +

+ - -
-
-
-
- Agent Orchestrator dashboard board view - Agent Orchestrator dashboard board view in light theme -
-
-
-
-
- Agent Orchestrator mobile workflow preview - Agent Orchestrator mobile workflow preview in light theme -
-
-
-
+ + Star on GitHub + + 7.7k + +
+ +
+
+
+ Live board preview +
+
+
+ +
); diff --git a/frontend/src/landing/components/LandingNav.tsx b/frontend/src/landing/components/LandingNav.tsx index 7aa58f5be..5a738a605 100644 --- a/frontend/src/landing/components/LandingNav.tsx +++ b/frontend/src/landing/components/LandingNav.tsx @@ -2,13 +2,6 @@ import { useEffect, useState } from "react"; -const navItems = [ - { label: "Features", href: "#features" }, - { label: "How it works", href: "#how" }, - { label: "Architecture", href: "#architecture" }, - { label: "Quickstart", href: "#quickstart" }, -]; - function GithubIcon({ className = "" }: { className?: string }) { return (
- - Agent Orchestrator - +
+ + Agent Orchestrator + Agent Orchestrator -