|
|
@@ -2,6 +2,7 @@ import React from "react"
|
|
|
import type { Metadata } from "next"
|
|
|
import { Inter } from "next/font/google"
|
|
|
import Script from "next/script"
|
|
|
+import { SEO } from "@/lib/seo"
|
|
|
|
|
|
import { Providers } from "@/components/providers"
|
|
|
|
|
|
@@ -12,11 +13,14 @@ import "./globals.css"
|
|
|
const inter = Inter({ subsets: ["latin"] })
|
|
|
|
|
|
export const metadata: Metadata = {
|
|
|
- title: "Roo Code – Your AI-Powered Dev Team in VS Code",
|
|
|
- description:
|
|
|
- "Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.",
|
|
|
+ metadataBase: new URL(SEO.url),
|
|
|
+ title: {
|
|
|
+ template: "%s | Roo Code",
|
|
|
+ default: SEO.title,
|
|
|
+ },
|
|
|
+ description: SEO.description,
|
|
|
alternates: {
|
|
|
- canonical: "https://roocode.com",
|
|
|
+ canonical: SEO.url,
|
|
|
},
|
|
|
icons: {
|
|
|
icon: [
|
|
|
@@ -40,6 +44,42 @@ export const metadata: Metadata = {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ openGraph: {
|
|
|
+ title: SEO.title,
|
|
|
+ description: SEO.description,
|
|
|
+ url: SEO.url,
|
|
|
+ siteName: SEO.name,
|
|
|
+ images: [
|
|
|
+ {
|
|
|
+ url: SEO.ogImage.url,
|
|
|
+ width: SEO.ogImage.width,
|
|
|
+ height: SEO.ogImage.height,
|
|
|
+ alt: SEO.ogImage.alt,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ locale: SEO.locale,
|
|
|
+ type: "website",
|
|
|
+ },
|
|
|
+ twitter: {
|
|
|
+ card: SEO.twitterCard,
|
|
|
+ title: SEO.title,
|
|
|
+ description: SEO.description,
|
|
|
+ images: [SEO.ogImage.url],
|
|
|
+ },
|
|
|
+ robots: {
|
|
|
+ index: true,
|
|
|
+ follow: true,
|
|
|
+ googleBot: {
|
|
|
+ index: true,
|
|
|
+ follow: true,
|
|
|
+ "max-snippet": -1,
|
|
|
+ "max-image-preview": "large",
|
|
|
+ "max-video-preview": -1,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ keywords: [...SEO.keywords],
|
|
|
+ applicationName: SEO.name,
|
|
|
+ category: SEO.category,
|
|
|
}
|
|
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
|
@@ -64,8 +104,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
`}
|
|
|
</Script>
|
|
|
<div itemScope itemType="https://schema.org/WebSite">
|
|
|
- <link itemProp="url" href="https://roocode.com" />
|
|
|
- <meta itemProp="name" content="Roo Code" />
|
|
|
+ <link itemProp="url" href={SEO.url} />
|
|
|
+ <meta itemProp="name" content={SEO.name} />
|
|
|
</div>
|
|
|
<Providers>
|
|
|
<Shell>{children}</Shell>
|