Incident report Open Graph Image Template
A dark incident card with a postmortem chip, timeline rows, and duration.
A dark incident card with a postmortem chip, timeline rows, and duration.
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 Incident report template for postmortems and outage writeups. It leads with the postmortem headline over a three point timeline, then closes on the total impact, the calm and factual order a good postmortem reads in.
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 report 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 last timeline dot turns emerald while the earlier ones stay muted, so the eye lands on recovery.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-incident-report
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. For a single incident, move it into that segment instead, for example app/incidents/june-30/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 label chip, the title, a timeline array of time and event pairs, the duration line, and the url. Three timeline rows is the natural fit; the layout gives each row a fixed 90 pixel time column and one event line, so keep each event to a short clause. The last entry in the array renders its dot in emerald (#10b981) to mark the all clear while the rest stay in a muted zinc, so order your rows in time. Two rows read fine, but past four the timeline compresses against the headline above.
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.