Open source Open Graph Image Template
A repository card with a code window and project statistics.
A repository card with a code window and project statistics.
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 Open source template for repository homepages, project docs, and package sites. It reads like a repo card: the project handle up top, a plain statement of what the library does, star and fork counts with the license, and a small code window drawn in bars so the card says software at a glance.
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 project 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 default export is async, so the card can fetch live data before it renders.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-open-source
The file lands at app/opengraph-image.tsx, which is right for a single project site; move it into a segment when the site hosts several projects. 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 repo handle, the pitch, the statistics, and the url. For live numbers, fetch your repository from the GitHub API inside the default export and format the counts before rendering; the card is generated on the server, so no token reaches the browser. The codeLines array draws the editor window as indent, width, and color tuples; reshape it to suggest your language's silhouette, keeping the accents sparse.
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.