Referral Open Graph Image Template
A referral card with give and get tiles, a title, and a url.
A referral card with give and get tiles, a title, and a url.
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 Referral template for a refer a friend program, where the pitch is that both sides come out ahead. It leads with the offer headline, then sets two matching tiles below it, one for what the friend gets and one for what the referrer gets, with a short note on when the credit lands and your referrals address up top.
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 referral 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 give and get tiles mirror each other, so the idea that both sides win reads instantly.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-referral-offer
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a referral page, move it into that route instead, for example app/referrals/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, the note, the url, and two tile objects give and get, each with a label and a value. The give tile fills dark and the get tile is outlined, but the two carry equal weight, so keep the values symmetrical when the reward matches on both sides. Values render at 62 pixels and suit a short amount like $20; the note below is the place for the fine print on when the credit posts.
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.