Social cards from a URL.
Put a title and a few details in the query string. OGIS renders a 1200 × 630 card at the edge, and your CDN keeps it.
API
One GET request that returns a PNG. Every parameter is optional.
GET /api/og
?title=Interstellar
&site=buxx.me
&theme=editorialIntegration guides for Ghost, Next.js, Astro and Hugo| Parameter | Description | Max |
|---|---|---|
| Text | ||
| title | Headline. Defaults to “Untitled”. | 200 |
| site | Site or publication name. Defaults to “Blog”. | 80 |
| excerpt | A line or two under the title. | 300 |
| author | Byline. | 80 |
| date | Shown as written, e.g. Jan 5, 2026. | 40 |
| reading | Reading time, e.g. 5 min read. | 40 |
| tag | Category or kicker. | 40 |
| Appearance | ||
| theme | pixel, modern, editorial, swiss, terminal, gallery, postcard, bauhaus, blueprint or oil. Anything else falls back to pixel. | |
| accent | Hex colour, with or without #. Colours the tag, or the wall, ink, sheet or lead colour in the themes built around one. | |
| pixelFont | zpix, or geist-square, -circle, -line, -triangle, -grid. Pixel theme only. | |
| Images | ||
| image | Cover image. Every theme uses it its own way, from a full-bleed background to a postcard stamp. | |
| icon | Site icon beside the site name. | |
| avatar | Author photo beside the byline. | |
Images
Fetched by the server from public hosts only: up to 6 MB, PNG, JPEG, GIF or SVG. An image that fails is left out, never an error.
Caching
Fresh at the CDN for a day, then served stale for up to a week while it re-renders.
Self-hosting
One click on Vercel, or one docker run on your own server. Set OG_API_ONLY=true to hide this page.