Product Open Graph Image Template
A product card with an image panel, name, price, and star rating.
A product card with an image panel, name, price, and star rating.
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 Product template for store listings and product pages. The left column carries the brand, the name, the price, a star rating, and detail chips; the right column is a framed panel with a drawn product suggestion you swap for a real photo. It leads with price and rating, the two things a shopper checks first.
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 product 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 star is an inline svg, so the rating reads as a mark rather than a piece of text.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-product-card
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a dedicated product page, move it into that segment instead, for example app/products/[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 the brand, the title, the price, the rating, the reviews count, the chips array, and the url. The right panel draws a placeholder keyboard from stacked tiles; replace that whole block with an img element pointing at an absolute product photo and satori will fetch it at render time. The chips array takes short status lines like stock and returns, and two keep the row balanced against the price. Keep the title to about two lines so it clears the panel.
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.