Workshop Open Graph Image Template
A workshop card with a title, seat and level chips, and a date footer.
A workshop card with a title, seat and level chips, and a date footer.
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 Workshop template for hands on classes and small paid sessions where scarcity does the selling. It leads with the session title, then answers the practical questions in a chip row: how many seats are left, what level it assumes, and what format to expect. The date sits underneath so nobody signs up for the wrong day.
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 workshop 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. The first chip renders with a solid border so the seat count reads as the urgent one.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-workshop
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a dedicated workshop page, move it into that segment instead, for example app/workshops/[slug]/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 brand, the label chip, the title, a description, the chips array, and the footer date. The chips array drives the pill row and the first entry is always emphasized, so lead with the scarcity line and keep the rest short. The url field ships in the object for wiring even though the current layout ends on the date; swap the date span for it if you prefer a link. Titles hold up to about two lines at this size.
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.