Website template Open Graph Image Template
A template card with a browser mock, template name, and stack chips.
A template card with a browser mock, template name, and stack chips.
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 Website template card for theme shops and template marketplaces, where the product is a site and the share card should show one. It pairs the template name, a short description, and the stack it is built on with a drawn browser window carrying a hero skeleton, so a buyer sees the layout they are about to install alongside the price.
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 template 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 browser window and its hero skeleton are drawn from divs, so the preview reads as a real site without shipping a screenshot.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-website-template
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a marketplace you will usually move it into the template detail segment, for example app/templates/[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 brand, the label above the name, the title, the description, the chips array naming the stack, the price shown in the filled pill, and the url. To generate a unique card per template, accept params in the default export, look the listing up the same way the page does, and feed its fields into the JSX. Keep the description under two lines so it clears the browser panel on the right.
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.