Rewards Open Graph Image Template
A dark rewards card with a points stat, tier chips, and a title.
A dark rewards card with a points stat, tier chips, and a title.
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 Rewards template for loyalty program launches and points promotions. It leads with the points multiplier at headline size, explains the terms on the line beneath, and closes with a tier chip row, so the perk and the ladder behind it are both clear the moment the card shows up in a 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 a rewards 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. One tier chip fills solid to mark the current level, which keeps the ladder readable at a glance.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-rewards-program
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a rewards page, move it into that segment instead, for example app/rewards/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 headline, the subtitle, the tiers array, the activeTier index, and the url. The headline fills the card at 150px, so a short multiplier like 2x points holds the space, while the subtitle explains the terms beneath it. The tiers array renders as the chip row, and activeTier marks which one fills solid, so point it at the level you want to spotlight.
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.