import { ImageResponse } from 'next/og'; import { BRAND, SITE_DEFAULT_TITLE, SITE_NAME, SITE_TAGLINE } from '@/lib/seo/config'; import { Monogram } from '@/lib/seo/og-monogram'; export const alt = SITE_DEFAULT_TITLE; export const size = { width: 1200, height: 630 }; export const contentType = 'image/png'; /** * The social card, drawn once at build time. * * It reads no environment variable, which is what keeps it static: pull * `siteUrl()` in here and the route turns dynamic, regenerating the same PNG on * every crawl. The Node runtime is required — satori rasterises through WASM, * which the edge runtime cannot load from the standalone output. */ export default function OpengraphImage() { return new ImageResponse( (
{SITE_NAME.toUpperCase()}
{SITE_TAGLINE}
), { ...size }, ); }