Benchmark Open Graph Image Template
A dark benchmark card with a title, two comparison bars, and a source.
A dark benchmark card with a title, two comparison bars, and a source.
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 Benchmark template for performance posts where your number beats the alternative and you want that gap visible before anyone reads a word. It leads with the headline result, then draws two bars, yours running the full width and the comparison scaled beside it, with the raw figures and the methodology line underneath.
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 post 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 bar widths are set explicitly, so you decide exactly how the two results read against each other.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-benchmark
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a benchmark post, move it into that route instead, for example app/benchmarks/cold-builds/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 title, a bars array, the method line, and the url. Each bar carries a label, a value string like 18s, a widthPct that sets its length, and a highlight flag; the highlighted bar renders light while the other stays muted. Set the winning bar to widthPct 100 and scale the rest against it by hand so the proportions match the real numbers. Keep the method line short, since it is the credibility of the whole card.
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.