feat: wire up landing page routes and layout
This commit is contained in:
parent
d0c053e99e
commit
93f904e429
|
|
@ -0,0 +1,32 @@
|
|||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Agent Orchestrator",
|
||||
description:
|
||||
"Open-source platform for running parallel AI coding agents. Spawn Claude Code, Codex, Aider, and more in isolated worktrees — all managed from one dashboard.",
|
||||
openGraph: {
|
||||
type: "website",
|
||||
url: "https://aoagents.dev/landing",
|
||||
siteName: "Agent Orchestrator",
|
||||
title: "Agent Orchestrator",
|
||||
description:
|
||||
"Open-source platform for running parallel AI coding agents. Spawn Claude Code, Codex, Aider, and more in isolated worktrees — all managed from one dashboard.",
|
||||
images: [{ url: "/og-image.png", width: 1024, height: 1024, alt: "Agent Orchestrator" }],
|
||||
},
|
||||
twitter: {
|
||||
card: "summary",
|
||||
site: "@aoagents",
|
||||
creator: "@aoagents",
|
||||
title: "Agent Orchestrator",
|
||||
description:
|
||||
"Open-source platform for running parallel AI coding agents. Spawn Claude Code, Codex, Aider, and more in isolated worktrees — all managed from one dashboard.",
|
||||
images: ["/og-image.png"],
|
||||
},
|
||||
alternates: {
|
||||
canonical: "https://aoagents.dev/",
|
||||
},
|
||||
};
|
||||
|
||||
export default function LandingLayout({ children }: { children: React.ReactNode }) {
|
||||
return <>{children}</>;
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
import { LandingNav } from "../../components/LandingNav";
|
||||
import { LandingHero } from "../../components/LandingHero";
|
||||
import { LandingAbout } from "../../components/LandingAbout";
|
||||
import { LandingAgentsBar } from "../../components/LandingAgentsBar";
|
||||
import { LandingStats } from "../../components/LandingStats";
|
||||
import { LandingVideo } from "../../components/LandingVideo";
|
||||
import { LandingFeatures } from "../../components/LandingFeatures";
|
||||
import { LandingWorkflow } from "../../components/LandingWorkflow";
|
||||
import { LandingUseCases } from "../../components/LandingUseCases";
|
||||
import { LandingTestimonials } from "../../components/LandingTestimonials";
|
||||
import { LandingHowItWorks } from "../../components/LandingHowItWorks";
|
||||
import { LandingQuickStart } from "../../components/LandingQuickStart";
|
||||
import { LandingCTA } from "../../components/LandingCTA";
|
||||
import { ScrollRevealProvider } from "../../components/ScrollRevealProvider";
|
||||
import { PageConstellation } from "../../components/PageConstellation";
|
||||
import { formatCompactNumber, getGitHubRepoStats } from "../../lib/github-repo";
|
||||
|
||||
export default async function LandingPage() {
|
||||
const githubStats = await getGitHubRepoStats();
|
||||
|
||||
return (
|
||||
<ScrollRevealProvider>
|
||||
<PageConstellation />
|
||||
<div className="relative z-10">
|
||||
<LandingNav />
|
||||
<LandingHero starsLabel={formatCompactNumber(githubStats.stars)} />
|
||||
<LandingAbout />
|
||||
<LandingAgentsBar />
|
||||
<LandingFeatures />
|
||||
<div id="workflow"><LandingWorkflow /></div>
|
||||
<div id="usecases"><LandingUseCases /></div>
|
||||
<LandingHowItWorks />
|
||||
<LandingVideo />
|
||||
<LandingStats stats={githubStats} />
|
||||
<LandingTestimonials />
|
||||
<div id="quickstart"><LandingQuickStart /></div>
|
||||
<LandingCTA />
|
||||
<footer className="py-12 px-8 text-center text-[var(--landing-muted)] opacity-30 text-[0.8125rem] border-t border-white/[0.04]">
|
||||
MIT Licensed · Open Source
|
||||
</footer>
|
||||
</div>
|
||||
</ScrollRevealProvider>
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
import type { Metadata } from "next";
|
||||
import "../styles/globals.css";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Agent Orchestrator",
|
||||
description: "Open-source platform for running parallel AI coding agents.",
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body>{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import LandingPage from "./landing/page";
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<div className="landing-page min-h-screen">
|
||||
<LandingPage />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Loading…
Reference in New Issue