Sale Open Graph Image Template
A sale card with a giant discount, event line, dates chip, and code pill.
A sale card with a giant discount, event line, dates chip, and code pill.
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 Sale template when the discount is the whole story and no single product needs to carry it. It sizes the headline saving to poster scale, names the sale and its scope on one line, then closes with the dates chip and a code pill, the details a shopper scans before deciding the offer is worth a click.
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 sale 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 layout is pure type and flat color, so it stays legible at the small size a feed renders.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-sale-promo
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a seasonal campaign, move it into the sale segment instead, for example app/sale/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 discount, the event line, the dates chip, the code, and the url. The discount renders at 170px, so a short token like 40% off keeps it on one line; anything longer will want a smaller font size. The event line carries the sale name and scope, while the code sits in a dashed pill with wide letter spacing, so uppercase promo codes read their cleanest.
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.