diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 2348564..d6430bb 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,6 +4,7 @@ import type { Metadata } from "next"; import { NextIntlClientProvider } from "next-intl"; import { getLocale, getMessages, getTranslations } from "next-intl/server"; +import copy from "@/copy/en-EN.json"; import { HomePageAppBar } from "@/components/home-page-app-bar"; import { HomePageFooter } from "@/components/home-page-footer"; @@ -23,7 +24,7 @@ export const generateMetadata = async (): Promise => { type: "website", locale: "en_US", url: SITE_URL, - siteName: t("metadata.title"), + siteName: copy.metadata.siteName, title: t("metadata.ogTitle"), description: t("metadata.ogDescription"), }, @@ -32,15 +33,55 @@ export const generateMetadata = async (): Promise => { title: t("metadata.twitterTitle"), description: t("metadata.twitterDescription"), }, - robots: { - index: true, - follow: true, - googleBot: { - index: true, - follow: true, + }; +}; + +const data = { + "@context": "https://schema.org", + "@graph": [ + { + "@type": "Organization", + name: copy.metadata.organizationName, + email: copy.metadata.organizationEmail, + url: copy.metadata.organizationUrl, + sameAs: copy.metadata.organizationSameAs, + founder: [ + { "@type": "Person", name: "vtemian", url: "https://blog.vtemian.com/" }, + { "@type": "Person", name: "balajmarius", url: "https://balajmarius.com/" }, + ], + logo: new URL("/icon.svg", SITE_URL).toString(), + }, + { + "@type": "WebSite", + name: copy.metadata.siteName, + description: copy.metadata.description, + url: new URL("/", SITE_URL).toString(), + inLanguage: "en-US", + publisher: { + "@type": "Organization", + name: copy.metadata.organizationName, + url: copy.metadata.organizationUrl, }, }, - }; + { + "@type": "SoftwareApplication", + name: copy.metadata.siteName, + description: copy.metadata.description, + applicationCategory: "DeveloperApplication", + operatingSystem: "Web", + url: new URL("/", SITE_URL).toString(), + offers: { + "@type": "Offer", + price: "0", + priceCurrency: "USD", + }, + publisher: { + "@type": "Organization", + name: copy.metadata.organizationName, + url: copy.metadata.organizationUrl, + }, + }, + ], }; const RootLayout = async ({ @@ -58,6 +99,12 @@ const RootLayout = async ({ > +