diff --git a/frontend/src/landing/app/landing/layout.tsx b/frontend/src/landing/app/landing/layout.tsx
new file mode 100644
index 000000000..850390d94
--- /dev/null
+++ b/frontend/src/landing/app/landing/layout.tsx
@@ -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}>;
+}
diff --git a/frontend/src/landing/app/landing/page.tsx b/frontend/src/landing/app/landing/page.tsx
new file mode 100644
index 000000000..a9eb619dc
--- /dev/null
+++ b/frontend/src/landing/app/landing/page.tsx
@@ -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 (
+