Design once. Render everywhere.
Every page deserves a great OG image.
Craft polished 1200×630 previews with a visual editor, then feed them live titles, authors, images, and themes through a render URL.
- 1200×630
- native OG size
- URL params
- dynamic fields
- PNG/API
- ready to paste
What you get
The OG image stack you wish you'd built yourself.
An editor, a hosted render API, and templates that don't embarrass you.
- Coming soon
Build once, reuse everywhere
Build a template, map any text or image field to a URL parameter, then reuse it across every blog post, doc, or changelog entry.
- Coming soon
Hosted render URL
A single endpoint returns a 1200×630 PNG. Drop it in your og:image tag. The result is cached at the edge.
Templates that pass review
A dozen starting points that look like real product design, not stock template work.
Yours to export
Download any design as PNG, JPEG, or WebP at 1×, 2×, or 3×. No watermarks, no lock-in, your work is yours to take anywhere.
Templates
Start from a template that already looks shipped.
Each one designed to look like real product work, not stock templates.
How it works
Three steps.
About four minutes.
- 01
Pick a template
Open the template gallery and pick one, or start with a blank canvas.
- 02Coming soon
Map fields to URL params
Drop placeholders like {title} and {description} into your text or image fields. The editor wires them up as URL parameters.
- 03Coming soon
Paste the render URL
Paste the hosted render URL into your og:image meta tag. Every page now has its own image.
Drop-in
Coming soonOne URL, infinite per-page images.
No more hand-rendering OG images and checking them into git. You give the URL params, it returns a PNG.
- Works with Next.js metadata, Remix loaders, and Astro frontmatter.
- Edge-cached PNGs with sub-100ms responses on cache hits.
- Type-safe schemas so Twitter, Slack, and Discord know what to render.
export async function generateMetadata({ params }) {
const { title, author } = await getPost(params.slug);
return {
openGraph: {
images: [
`https://ogcanvas.app/api/og/4kp9m2x8` +
`?title=${title}&byline=${author}`,
],
},
};
}Make every shared link look like you meant it.
Pick a template, connect your fields, and paste the render URL into your meta tags.