OG Image Generator

Beautiful OG images, generated from HTML.

One API call turns your HTML template into a pixel-perfect Open Graph image. Shared links get 2-3x more clicks with a proper preview image.

<1.2s
Render
1200×630
OG standard
100/mo
Free tier
Jane Doe
@janedoe_dev

Just published a new guide on zero-downtime deployments with database migrations. Took us 3 months to figure this out at scale.

Published
APR
2026
A
acme.dev/blog
Zero-Downtime
Deployments
with Database Migrations
Jane Doe|Staff Engineer
acme.dev
Zero-Downtime Deployments with Database Migrations
42 replies186 reposts2.4K likes
#engineering3:42 PM
acme.dev/blog/zero-downtime-deployments
No preview available
No og:image meta tag found

Template Gallery

Start with a template, customize with your data.

Every template is standard HTML + CSS. Use Tailwind, Google Fonts, inline SVG — anything that works in a browser.

ARTICLE
#DEVOPS

Zero-Downtime
Deployments

A practical guide to shipping without breaking prod

RENDSHOT.
Blog Post — Brutalism
1200 × 630
RENDSHOT® API2026 V2.0

HTML to Image API.
Now with Templates.

Design once in HTML + CSS.
Generate thousands of unique images via API.

Developer APIPixel-PerfectSub-Second
Product Launch — Swiss Minimal
1200 × 630
RendShot

Dynamic OG Images,
Generated from HTML.

One API call turns your template into a pixel-perfect social preview image. Hosted on a global CDN.

1200 × 630 PXOPTIMIZED FOR SHARING
GET API KEY
SaaS Feature — Glassmorphism
1200 × 630
STATUS: READY_TO_RENDER
API_V2.0
01
POST /v1/image

Render an Image
from HTML + CSS

Full API reference for the RendShot rendering endpoint. PNG, JPEG, WebP output.

R
RENDSHOT
docs.rendshot.ai
api.rendshot.ai/v1
Documentation — Tech Grid
1200 × 630

Why Not Self-Build?

Three ways to generate OG images. One requires zero infrastructure.

Feature
RendShot
@vercel/og
Puppeteer
HTML & CSS supportFull — any HTML, Tailwind, web fontsJSX only — no CSS files, limited layoutFull — but you host it
Tailwind CSS
Custom web fonts50+ auto-loaded, or any URLManual font file embeddingFull — but needs font install
Render time<1.2s median<500ms (Edge)2-5s (cold start)
InfrastructureManaged — zero opsVercel Edge (tied to Vercel)Self-hosted Docker + Chromium
CDN deliveryBuilt-in global CDNVercel CDN onlyDIY (S3 + CloudFront, etc.)
Template systemVariables + validation + versioningNone — hardcoded in routeDIY
Free tier100 images/monthUnlimited (Vercel plan limits)Self-hosted cost

When to use @vercel/og instead: If you're on Vercel, only need simple text layouts, and want sub-500ms Edge rendering with zero external dependencies — Satori is a great choice. RendShot is better when you need full CSS control, Tailwind, or complex multi-element designs.

How It Works

Three steps to dynamic OG images.

01

Design your OG template

Write HTML + CSS for your 1200×630 OG layout. Use Tailwind, Google Fonts, any CSS. Add {{variables}} for dynamic content.

02

Call the API on publish

When a blog post is published or a product is updated, one POST request generates a fresh OG image with the latest data.

03

Set the meta tag

Point your og:image meta tag to the returned CDN URL. Every platform — Twitter, LinkedIn, Slack, Discord — renders your image.

Integration

Works with any stack.

Next.js, Astro, Hugo, WordPress, or a plain cron job — if you can make an HTTP request, you can generate OG images.

// app/api/og/route.ts
import { RendShot } from '@rendshot/sdk'

const client = new RendShot({ apiKey: process.env.RENDSHOT_API_KEY })

export async function GET(req: Request) {
  const { searchParams } = new URL(req.url)
  const title = searchParams.get('title') ?? 'My Blog'

  const image = await client.renderImage({
    template_id: 'blog-og',
    variables: { title, author: 'Jane Doe' },
    width: 1200,
    height: 630,
  })

  return Response.redirect(image.url)
}
PNG, JPEG, WebP output
Standard 1200×630 OG size
Google Fonts auto-loaded
CDN-hosted image URLs
<1.2s
Median render time
P50 across all requests
Global
CDN delivery
Cloudflare R2 edge network
50+
Web fonts
Auto-loaded from Google Fonts
99.9%
Uptime SLA
Rolling 12-month average

Pricing

Start free. Scale when ready.

Free
$0/month
  • 100 images/month
  • 10 req/min
  • 7-day retention
  • Full API access
Get Started Free
Pro
$19/month
  • 10,000 images/month
  • 100 req/min
  • 30-day retention
  • Priority support
View Full Pricing

Common questions about OG image generation

What is an OG image and why does it matter?

An OG (Open Graph) image is the preview image shown when your link is shared on Twitter, LinkedIn, Slack, Discord, and other platforms. Pages with OG images get 2-3x more clicks than those without. RendShot generates these images dynamically from HTML templates.

How is this different from @vercel/og (Satori)?

Vercel OG uses Satori which only supports a subset of CSS via JSX — no Tailwind, no CSS files, limited layout options. RendShot renders real HTML with a full browser engine, supporting any CSS feature including Tailwind, Grid, Flexbox, and custom fonts.

Can I use my existing HTML templates?

Yes. RendShot renders standard HTML + CSS. If it works in a browser, it works in RendShot. You can use Tailwind, Google Fonts, inline SVGs, and any CSS feature. Just replace dynamic parts with template variables.

What about caching and performance?

Every generated image is served via a global CDN with automatic caching. Median render time is under 1.2 seconds. For frequently accessed images, the CDN serves them in milliseconds.

Is there a free tier?

Yes. The free plan includes 100 image renders per month, 7-day image retention, and full API access. No credit card required. The Pro plan ($19/month) gives you 10,000 renders and 30-day retention.

Stop shipping pages without OG images.

100 free OG images per month. No credit card. Set up in under 5 minutes.