Glossary Open Graph Image Template
A glossary card with a breadcrumb, oversized term, and one line definition.
A glossary card with a breadcrumb, oversized term, and one line definition.
Every Open Graph image template is included with Basic and Pro. Pick a plan to copy the code, install with the CLI, and download the raw SVG.
Already purchased? Log in
Use the Glossary template to give every term page a share card that reads like a dictionary entry. A breadcrumb sits top right, the term fills the card at 84px with its part of speech beside it, and a one line definition finishes the thought above your glossary address.
This template is a metadata image route for the Next.js App Router. The file exports size, contentType, and alt values plus a default async function that returns an ImageResponse. When a page in the segment is shared, satori converts the JSX into an SVG document, the runtime rasterizes that SVG into a 1200 by 630 PNG, and Next.js serves the result and wires the og:image and twitter:image tags into the page head automatically. The term and its part of speech share a baseline aligned row, so the entry keeps its dictionary rhythm no matter the word length.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-glossary-term
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a glossary you will usually move it into the term segment instead, for example app/glossary/[term]/opengraph-image.tsx. You can also copy the code from this page straight into your project.
The card renders text with Inter, read from assets/fonts at your project root with node:fs so the font files never ship to the browser. Download the latin woff files for weights 400, 500, 600, and 700 from Fontsource and save them as assets/fonts/inter-latin-400-normal.woff and so on.
The content object holds brand for the logo row, the breadcrumb, the term, the partOfSpeech, the definition, and the url. To stamp a card per term, accept params in the default export, read the entry the way the page does, and feed those fields in. The term renders at 84px, so a single long word may need a step down to about 64px to stay on one line; the definition holds two lines at 30px.
satori supports a focused subset of CSS: flexbox layout only, flat colors, and an explicit display: flex on any element with multiple children. Keep those rules in mind if you rework the layout.