Background
Follow-up to #824 (umbrella: dynamic OG images for dynamic content) and #585, which implemented the first dynamic OG image: forecast zone shares now render the current danger rating (official NAPADS icon + danger badge) and travel advice pulled live from the AFP map-layer API.
That work established a reusable pattern in /api/[center]/og/route.tsx:
- The OG route is a dynamic handler, so the image is always fresh when crawlers request it.
- A page's
generateMetadata points openGraph.images at /api/[center]/og?<params> and can set openGraph.description from live data.
Proposal
Apply the same dynamic-OG treatment to the remaining pages with meaningful per-document content, so shared links get rich, content-specific previews instead of the generic center image:
- Blog posts — title, hero image, author/date in the OG image; excerpt as
og:description.
- Events — title, date/location in the OG image; description as
og:description.
- Audit other dynamic routes (e.g. individual observations, accident reports) and decide which are worth a custom OG image.
Notes / open questions
- For CMS-authored content (blog, events), prefer the document's own hero/banner image when present, falling back to the center's generated OG layout.
- Decide per-collection whether the OG image should be generated (
@vercel/og) or just reference the document's existing hero image directly.
- Keep the per-page
generateMetadata changes minimal and consistent with the forecast implementation.
Related
Background
Follow-up to #824 (umbrella: dynamic OG images for dynamic content) and #585, which implemented the first dynamic OG image: forecast zone shares now render the current danger rating (official NAPADS icon + danger badge) and travel advice pulled live from the AFP map-layer API.
That work established a reusable pattern in
/api/[center]/og/route.tsx:generateMetadatapointsopenGraph.imagesat/api/[center]/og?<params>and can setopenGraph.descriptionfrom live data.Proposal
Apply the same dynamic-OG treatment to the remaining pages with meaningful per-document content, so shared links get rich, content-specific previews instead of the generic center image:
og:description.og:description.Notes / open questions
@vercel/og) or just reference the document's existing hero image directly.generateMetadatachanges minimal and consistent with the forecast implementation.Related