Tutorial Open Graph Image Template
A tutorial card with a title, summary, and step, time, and level chips.
A tutorial card with a title, summary, and step, time, and level chips.
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 Tutorial template when a lesson page wants readers to see the commitment before they click. It leads with the tutorial title and a one line summary, then a row of chips for the step count, the time to finish, and the level, so the scope reads at a glance.
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 chips are plain flex pills, so adding or dropping one reflows the row on its own.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-tutorial
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a lesson you will usually move it into the tutorial segment instead, for example app/learn/[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 brand for the logo row, the label chip, the title, the description, and the url. The chips array drives the footer pills; the sample lists step count, duration, and level, and it maps straight to the JSX, so change the strings or add a fourth for a different scope. Keep each chip to two or three words so the row stays on one line beside the url. The title reads best in a few words at 62px, and the description is happiest under 120 characters.
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.