diff --git a/public/images/brand/binary-purple.svg b/public/images/brand/binary-purple.svg
new file mode 100644
index 00000000..495c793a
--- /dev/null
+++ b/public/images/brand/binary-purple.svg
@@ -0,0 +1,249 @@
+
\ No newline at end of file
diff --git a/public/images/brand/circles.svg b/public/images/brand/circles.svg
new file mode 100644
index 00000000..35040167
--- /dev/null
+++ b/public/images/brand/circles.svg
@@ -0,0 +1,430 @@
+
\ No newline at end of file
diff --git a/public/images/brand/cncf.svg b/public/images/brand/cncf.svg
new file mode 100644
index 00000000..14c69fe9
--- /dev/null
+++ b/public/images/brand/cncf.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/public/images/brand/kagent-mark-purple.svg b/public/images/brand/kagent-mark-purple.svg
new file mode 100644
index 00000000..a961e500
--- /dev/null
+++ b/public/images/brand/kagent-mark-purple.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/src/app/build/page.tsx b/src/app/build/page.tsx
new file mode 100644
index 00000000..5f1b7314
--- /dev/null
+++ b/src/app/build/page.tsx
@@ -0,0 +1,65 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+import { INSTALL_LINES, LOOP_LINES } from "@/data/home-content";
+import { ghostBtn, primaryBtn, Section } from "@/components/home/primitives";
+import { TerminalRoll } from "@/components/home/terminal";
+import { BuildFlow } from "@/components/home/build-flow";
+import { AdoptersSection, CommunityBand, FeaturesSection, PipelineGrid } from "@/components/home/sections";
+
+export const metadata: Metadata = {
+ title: "Build agents the way you ship everything else | kagent",
+ description:
+ "Skills, tools and agents are Kubernetes resources. Write them, apply them, review them in a pull request. No framework to learn, no glue code to maintain.",
+};
+
+export default function BuildPage() {
+ return (
+ <>
+ {/* Hero */}
+
+
+
+
+
+
+ the declarative way to build agents
+
+
+ Build agents the way you ship everything else
+
+
+ Skills, tools and agents are Kubernetes resources. Write them, apply them, review them in a pull request. No framework to
+ learn, no glue code to maintain.
+
+
+
+ Create your first agent
+
+
+ Read the docs
+
+
- kagent runs your agents where your workloads already live — on Kubernetes.
- Deploy, observe, and govern AI agents with the tools your platform team
- already trusts. Open source. Production grade. Built by the founders of Istio.
-
The shortest path from prototype to production agents.
-
You already know how to run things on Kubernetes — pods, services, RBAC, observability, GitOps. kagent makes agents another first-class workload, not a new platform to learn.
-
-
- {[
- ['workflow', 'Declarative agents', 'Define agents as Kubernetes CRDs — versioned in Git, reviewed in PRs, rolled out with the same tools you already use.'],
- ['plug', 'Bring your own everything', 'Any LLM, any framework, any tool. Native MCP, A2A, and OpenAI-compatible endpoints — no lock-in, no rewrites.'],
- ['eye', 'Observable by default', 'OpenTelemetry traces, Prometheus metrics, structured logs. See every prompt, every tool call, every token.'],
- ['shield', 'Zero-trust ready', 'Run on top of Istio or Ambient Mesh. mTLS, fine-grained RBAC, and policy-driven egress for agent traffic.'],
- ['shield', 'NVIDIA NemoClaw', 'Built-in security and privacy guardrails via NVIDIA NemoClaw. Run Nemotron locally or route to cloud models — with policy enforcement on every call.'],
- ['bolt', 'Agent Substrate', 'Run declarative agents on Agent Substrate for fast startup, efficient resource usage, and secure sandboxed execution — a Kubernetes-native runtime for agents at scale.'],
- ['book', 'Standards-based', 'Native MCP, A2A, OpenTelemetry, and Kubernetes APIs. No proprietary glue, no rewrite tax later.'],
- ].map(([icon, title, body], i) => (
-
-
-
{title}
-
{body}
-
- ))}
-
-
- {/* Platform Capabilities */}
-
-
- Platform capabilities
-
Everything you need. Nothing you don't.
-
Every feature works with a single helm install. No add-ons, no extra databases, no waiting for enterprise.
-
-
- {[
- ['Agent lifecycle via CRDs', 'Define, version, and roll out agents with kubectl and GitOps — the same workflow as every other workload.'],
- ['Multi-runtime support', 'Go and Python ADK runtimes. Pick the language that fits, or mix both in the same cluster.'],
- ['Agent Substrate runtime', 'Run agents on the substrate runtime — a WorkerPool + Actor model that delivers fast cold starts, low resource overhead, and secure isolation per agent.'],
- ['BYO frameworks', 'LangGraph, CrewAI, Google ADK, or your own — bring any agent framework and kagent orchestrates it.'],
- ['Long-term memory', 'Persistent vector-backed memory across sessions. Agents remember context, not just the last prompt.'],
- ['Human-in-the-loop', 'Tool approval gates, agent-initiated questions, and cascading HITL — humans stay in control.'],
- ['Agent-to-Agent (A2A)', 'Agents discover and invoke each other. Compose multi-agent workflows with first-class delegation.'],
- ['Skills from Git', 'Load markdown knowledge from Git repos at startup. Agents learn your runbooks, not just generic docs.'],
- ['Prompt templates', 'Reusable prompt fragments from ConfigMaps. DRY your system prompts across agents.'],
- ['Context compaction', 'Auto-summarization of long histories. Agents stay coherent in extended conversations without blowing token budgets.'],
- ['Sandbox & security', 'Agent sandboxing, RBAC, and security hardening out of the box. Run untrusted code safely.'],
- ['Full observability', 'OTel tracing, Prometheus metrics, structured logs. See every prompt, every tool call, every token.'],
- ['Postgres storage', 'Production-grade Postgres-backed storage with reviewable migrations. No proprietary database lock-in.'],
- ].map(([title, desc], i) => (
-
-
-
- {/* HOW IT WORKS */}
-
-
- {/* USE CASES */}
-
-
-
- Use cases
-
What teams ship with kagent.
-
From day-zero installs to platform-wide rollouts, kagent powers the agent surface area inside platform engineering organizations.
-
-
- {[
- ['siren', 'Incident response', 'A pager-aware agent that triages alerts, correlates traces, drafts the runbook, and opens the rollback PR — with humans approving each step.'],
- ['search', 'Observability copilot', 'Conversational PromQL and trace navigation. Ask "why did checkout p99 spike at 3am" and get the actual answer, with citations.'],
- ['terminal', 'Platform self-service', 'Devs ask for a namespace, a database, or a CI pipeline in plain English. The agent files the GitOps PR; your existing approvals do the rest.'],
- ['brain', 'Knowledge agents', 'RAG over runbooks, ADRs, and Slack history — but with mTLS, RBAC, and audit logs that your security team will actually sign off on.'],
- ['messageCircle', 'Chat providers', 'Message OpenClaw, Hermes, and other agents through Telegram, WhatsApp, Slack, or Discord. Every channel connects via A2A — one agent works on every platform.'],
- ['gitMerge', 'Multi-agent workflows', 'Chain agents together to automate complex operations end-to-end. One agent triages, another investigates, a third remediates — coordinated via A2A with full observability at every step.'],
- ].map(([icon, title, body], i) => (
-
-
-
{title}
-
{body}
-
- ))}
-
-
-
-
- {/* STANDARDS */}
-
-
-
- Built on standards
-
An open stack, not another silo.
-
kagent doesn't reinvent the wheel. It composes the protocols that the agent ecosystem is converging on — so you can swap models, frameworks, and tools without rewriting your agents.
-
-
- {/* MCP — official Model Context Protocol logo */}
-
-
-
-
-
Model Context Protocol
-
Connect any tool — REST, gRPC, databases, internal APIs — through a single declarative spec.
-
-
- {/* A2A — official Agent-to-Agent protocol logo */}
-
-
-
-
-
Agent-to-Agent
-
Compose multi-agent systems with first-class delegation, hand-off, and shared memory.
-
-
- {/* OpenTelemetry — official CNCF logo */}
-
-
-
-
-
OpenTelemetry
-
Every prompt, tool call, and token emits OTel traces — the same pipeline as the rest of your stack.
-
-
- {/* Kubernetes — official helm wheel logo */}
-
-
-
-
-
Kubernetes-native
-
Agents, sessions, and tools as CRDs. GitOps, RBAC, and admission controllers come for free.
kagent is a CNCF Sandbox project. Roadmap is public. PRs are welcome. The maintainers hang out in Discord and answer in hours, not days.
-
-
-
-
-
3,000+
-
GITHUB STARS
-
Open source
-
Apache 2.0. Public roadmap, public RFCs, public weekly community calls.
- github.com/kagent-dev →
-
-
-
-
2,800+
-
DISCORD MEMBERS
-
Live community
-
Maintainers and operators sharing patterns, debugging clusters, shipping integrations together.
- Join Discord →
-
-
-
-
100+
-
CONTRIBUTORS
-
Real momentum
-
From individual operators to teams at hyperscalers. Weekly releases, monthly community demos.
- See contributors →
-
-
+ {/* Substrate intro */}
+
+
+ A runtime built for how agents actually run
+
+
+ Agents resume in milliseconds, hold nothing while idle, and run sandboxed from the first instruction. Substrate's core is
+ built on Kubernetes, so this is the platform you already operate.
+
+
+
+ {/* Suspend & resume */}
+
+
+ suspend & resume
+
Sub-100ms resume, on demand
+
+ Agents don't usually need to run 24/7, so reserving constant compute for them is very inefficient. Suspend an agent and
+ it holds nothing. Resume it and it is back before anyone notices.
+
+
-
-
- {/* CTA BAND */}
-
-
-
- Ready in 5 minutes
-
Run your first agent on Kubernetes today.
-
One Helm chart. One CRD. One namespace. You'll be looking at agent traces before your coffee gets cold.
-
-
- Get Started
-
-
-
- Read the docs
-
-
-
+
+
+
+ {/* Density */}
+
+
+ density
+
30× with Agent Substrate
+
+ Agents share pools of workers instead of getting their own dedicated compute. Substrate packs more agents onto the system
+ than it has compute for, because agents that aren't running don't hold any.
+
+
+ See how the density works
+
-
-
+
+
+
+ {/* Isolation */}
+
+
+ isolation
+
Sandboxed by default
+
+ Agents can be very dangerous. All compute inside Substrate runs in a sandbox runtime, and Substrate controls all network
+ traffic in and out of the agent — nothing gets in or out without explicit permission.
+
+
+
+
+
+ {/* Build walkthrough */}
+
+
+
+
+
+
+
+ >
);
}
diff --git a/src/components/footer.tsx b/src/components/footer.tsx
index d9c03ec9..3ef1b63e 100644
--- a/src/components/footer.tsx
+++ b/src/components/footer.tsx
@@ -1,187 +1,47 @@
import Link from "next/link";
-import KagentLogo from "./icons/kagent-logo";
-import { GITHUB_LINK, DISCORD_LINK, X_LINK, LINKEDIN_LINK, YOUTUBE_LINK } from "@/data/links";
-import { Separator } from "./ui/separator";
-import Github from "./icons/github";
-import DiscordIcon from "./icons/discord";
-import Twitter from "./icons/twitter";
-import LinkedIn from "./icons/linkedin";
-import Youtube from "./icons/youtube";
+import Image from "next/image";
-export default function Footer() {
- return (
-