Use Case

Generate OG Images with a Single API Call

Stop building og:image infrastructure. Send HTML, get a pixel-perfect Open Graph image back. Works with Twitter, Facebook, LinkedIn, Discord.

Start Free — 100 images/mo View API Docs
The Problem

OG images are a pain to generate at scale

Self-hosting Puppeteer/Playwright
You spin up a headless browser, manage memory leaks, handle crashes, and babysit a Chromium process — all for a 1200×630 PNG. Your DevOps bill grows faster than your blog.
RenderPix handles it
One POST request with your HTML template. We run Chromium, render the image, and return it in ~1 second. No infrastructure, no babysitting, no surprises on your AWS bill.
@vercel/og limitations
Only supports flexbox, a subset of CSS, and limited fonts. No grid, no advanced layouts, no full CSS support. Your designs are constrained by Satori's rendering engine.
Full CSS/HTML support
RenderPix renders with real Chromium — the same engine your users' browsers use. Grid, flexbox, custom fonts, animations frozen at the right frame. If Chrome can render it, we can capture it.
How It Works

Three steps to dynamic OG images

01
Design your template
Write an HTML/CSS template for your OG image. Use any CSS you want — gradients, custom fonts, images, grid layouts. 1200×630px is the standard OG size.
02
Call the API
POST your HTML to /v1/render with width=1200 and height=630. Inject dynamic data (title, author, date) into your template before sending.
03
Serve the image
Get back a PNG/JPEG/WebP. Cache it on your CDN, serve it via og:image meta tag. Every blog post, product page, or tweet gets a unique social card.
og-image.js
// Generate a dynamic OG image for a blog post
const response = await fetch('https://renderpix.dev/v1/render', {
  method: 'POST',
  headers: {
    'X-API-Key': 'rpx_your_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    html: `
      <div style="width:1200px;height:630px;background:linear-gradient(135deg,#0f172a,#1e293b);
        display:flex;flex-direction:column;justify-content:center;padding:80px;font-family:sans-serif">
        <div style="color:#22d3ee;font-size:18px;margin-bottom:16px">renderpix.dev</div>
        <div style="color:white;font-size:52px;font-weight:bold;line-height:1.2">
          ${post.title}
        </div>
        <div style="color:#94a3b8;font-size:20px;margin-top:24px">
          ${post.author} · ${post.date}
        </div>
      </div>
    `,
    width: 1200,
    height: 630,
    format: 'png'
  })
});

const image = await response.arrayBuffer();
// Save to /public/og/my-blog-post.png or serve directly
Platform Support

Perfect OG images for every platform

𝕏
Twitter / X
1200 × 628 px
f
Facebook
1200 × 630 px
in
LinkedIn
1200 × 627 px
Discord
1200 × 630 px
Pricing

60% cheaper than htmlcsstoimage

$9/mo
2,000 OG images/month · Free tier: 100 images/month forever
Get Your API Key — Free