diff --git a/src/app/projects/[slug]/opengraph-image.tsx b/src/app/projects/[slug]/opengraph-image.tsx new file mode 100644 index 0000000..0e1c2e6 --- /dev/null +++ b/src/app/projects/[slug]/opengraph-image.tsx @@ -0,0 +1,123 @@ +import { ImageResponse } from "next/og"; +import { projects } from "@/data/projects"; + +export const size = { width: 1200, height: 630 }; +export const contentType = "image/png"; + +export function generateStaticParams() { + return projects.map((p) => ({ slug: p.slug })); +} + +export default async function Image({ + params, +}: { + params: Promise<{ slug: string }>; +}) { + const { slug } = await params; + const project = projects.find((p) => p.slug === slug); + + if (!project) { + return new ImageResponse( +
, + { ...size } + ); + } + + return new ImageResponse( + ( +