diff --git a/app/api/og/route.tsx b/app/api/og/route.tsx new file mode 100644 index 0000000..e384b93 --- /dev/null +++ b/app/api/og/route.tsx @@ -0,0 +1,74 @@ +import { NextRequest } from "next/server"; +import { ImageResponse } from "next/og"; +import { siteConfig } from "@/config/site"; + +export const runtime = "edge"; + +const interBold = fetch( + new URL("../../../assets/fonts/Inter-Bold.ttf", import.meta.url), +).then((res) => res.arrayBuffer()); + +export async function GET(req: NextRequest) { + try { + const fontBold = await interBold; + + const { searchParams } = req.nextUrl; + const title = searchParams.get("title"); + + if (!title) { + return new Response("No title provided", { status: 500 }); + } + + const heading = + title.length > 140 ? `${title.substring(0, 140)}...` : title; + + return new ImageResponse( + ( +
JollyBlog
+