Agenda Open Graph Image Template
An agenda card with an event chip and three session rows.
An agenda card with an event chip and three session rows.
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 Agenda template for conference schedules, event lineups, and day of program cards. It shows the plan itself: three session rows, each a time pill next to a talk and its speaker, so the schedule is readable straight from the feed.
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 the agenda page 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. Because the sessions map from an array, a reordered lineup is a reordered list rather than a redraw.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-agenda
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For an agenda, move it into that segment instead, for example app/conf/agenda/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 the event, the title, a sessions array, and the url. Each session carries a time, a talk, and a speaker; the time sits in a dark pill, the talk grows to fill the row, and the speaker trails on the right. Three rows fit the height cleanly; a fourth wants tighter padding or a shorter title. Keep each talk to one line so the rows stay even.
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.