Countdown Open Graph Image Template
A dark countdown card with a giant day count, a caption, and a date chip.
A dark countdown card with a giant day count, a caption, and a date chip.
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 Countdown template for the days before a launch, a conference, or a deadline, where the number itself is the message. It centers the days remaining at poster size on a dark card, names what happens at zero below, and closes with the date and your address, so the card counts down on its own.
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 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. Compute the day count at request time in the default export and every fetch of the card shows a fresh number.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-countdown
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For an event, move it into that route instead, for example app/conf/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 days string, the label under it, the date chip, and the url; a brand field is present but the centered layout does not render it. The days value is a string so you can zero pad it like 03, and it renders at 280 pixels, which suits one or two digits. To make it live, replace the static days with a value computed from the target date at request time. The label and date carry the context, so keep each to one line.
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.