Skip to content

Extend dynamic OG images to other dynamic content pages (blog posts, events) #1101

@rchlfryn

Description

@rchlfryn

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions