Files
agentlens/apps/web/src/app/layout.tsx
Vectry 145b1669e7 feat: comprehensive SEO — meta tags, OG, Twitter cards, JSON-LD, sitemap, robots, llms.txt
Adds metadataBase, full OpenGraph + Twitter card tags, keywords,
JSON-LD structured data (SoftwareApplication + Organization),
sitemap.ts, robots.ts with AI crawler directives, and llms.txt
for AI agent discoverability.
2026-02-10 02:21:16 +00:00

80 lines
2.1 KiB
TypeScript

import { Inter } from "next/font/google";
import type { Metadata } from "next";
import "./globals.css";
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
metadataBase: new URL("https://agentlens.vectry.tech"),
title: {
default: "AgentLens — Agent Observability Platform",
template: "%s | AgentLens",
},
description:
"Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.",
keywords: [
"agent observability",
"AI monitoring",
"LLM tracing",
"agent decisions",
"AI debugging",
"tool selection tracing",
"multi-agent observability",
"open source",
],
authors: [{ name: "Vectry" }],
creator: "Vectry",
openGraph: {
type: "website",
locale: "en_US",
url: "https://agentlens.vectry.tech",
siteName: "AgentLens",
title: "AgentLens — Agent Observability Platform",
description:
"Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.",
images: [
{
url: "/og-image.png",
width: 1200,
height: 630,
alt: "AgentLens — Agent Observability Platform",
},
],
},
twitter: {
card: "summary_large_image",
title: "AgentLens — Agent Observability Platform",
description:
"Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.",
images: ["/og-image.png"],
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
"max-video-preview": -1,
"max-image-preview": "large",
"max-snippet": -1,
},
},
alternates: {
canonical: "https://agentlens.vectry.tech",
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" className="dark">
<body className={`${inter.className} bg-neutral-950 text-neutral-100 antialiased`}>
{children}
</body>
</html>
);
}