feat: add SEO metadata and Open Graph helpers
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,8 +8,12 @@ import { Footer } from "@/components/layout/Footer";
|
|||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Project Afterlife",
|
title: {
|
||||||
|
default: "Project Afterlife",
|
||||||
|
template: "%s | Project Afterlife",
|
||||||
|
},
|
||||||
description: "Preserving online games that deserve a second life",
|
description: "Preserving online games that deserve a second life",
|
||||||
|
metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL || "https://projectafterlife.dev"),
|
||||||
};
|
};
|
||||||
|
|
||||||
export default async function LocaleLayout({
|
export default async function LocaleLayout({
|
||||||
|
|||||||
35
apps/web/src/lib/metadata.ts
Normal file
35
apps/web/src/lib/metadata.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
|
const BASE_URL = process.env.NEXT_PUBLIC_SITE_URL || "https://projectafterlife.dev";
|
||||||
|
|
||||||
|
export function createMetadata({
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
image,
|
||||||
|
path = "",
|
||||||
|
}: {
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
image?: string;
|
||||||
|
path?: string;
|
||||||
|
}): Metadata {
|
||||||
|
const url = `${BASE_URL}${path}`;
|
||||||
|
return {
|
||||||
|
title: `${title} | Project Afterlife`,
|
||||||
|
description,
|
||||||
|
openGraph: {
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
url,
|
||||||
|
siteName: "Project Afterlife",
|
||||||
|
images: image ? [{ url: image, width: 1200, height: 630 }] : [],
|
||||||
|
type: "website",
|
||||||
|
},
|
||||||
|
twitter: {
|
||||||
|
card: "summary_large_image",
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
images: image ? [image] : [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user