Social cards, generated on the edge

Every link deserves a great card.

The OG image API for developers. One request turns any page title into a perfect 1200×630 PNG or SVG, rendered on the Cloudflare edge in ~330 ms of CPU time. No headless browser. Fair pricing per unique image.

50 unique images/month · PNG & SVG · instant CDN cache

Your next link preview LIVE
GET oganvil.rowu.workers.dev/api/render?title=Your+page+title&tag=Your+subtitle
Live example of the OG image oganvil generates: Launching oganvil — OG images generated on the edge
1200 × 630 PNG / SVG Cloudflare edge
Rendered from the same endpoint your visitors will hit. Live endpoint · enable JavaScript for cache / quota details

Not a mockup. An actual API-generated image.

~330ms CPU

Edge render time (measured)

1200×630

PNG or SVG, any theme

0

Headless browser overhead

Made for developers
who ship.

A tiny API, a big upgrade for your links — built for indie hackers, solo devs, docs sites and marketing teams.

One URL, instant cards

Drop a single <meta> tag in your docs or blog. oganvil does the rest — no build step, no server, no canvas code.

Rendered on the edge

Cloudflare Workers render each card close to your users. Median 330ms of CPU time (measured 2026-09-16), globally cached by default.

No headless browser

Built on workers-og. No Selenium, no Puppeteer — meaning no cold-start latency and nothing to babysit.

PNG or SVG

Ask for anything at 1200×630 — crisp raster PNG, or resolution-independent SVG that stays sharp in any thumbnail size.

Fair, unique-image billing

You pay only per unique image. Repeat views are served from cache and never billed. Your analytics won’t eat your budget.

Quota alerts

We email you at 50%, 90% and 100% of your monthly limit on paid plans, so a spike never catches you off guard.

One <meta> tag.
That’s it.

  1. Build your oganvil URL

    Add a title and optional tag query param to the render endpoint. Everything else is handled for you.

  2. Drop it in a meta tag

    Point og:image (or twitter:image) at your URL and deploy your page.

  3. Share it anywhere

    Discord, X, LinkedIn, Slack — every platform reads the card and shows a branded 1200×630 preview. Cache does the rest.

index.html HTML
<meta
  property="og:image"
  content="https://oganvil.rowb.app/api/render?title=Your%20page%20title&tag=Your%20subtitle"
>

// One URL. A great preview on every share.

Terminal CURL
curl "https://oganvil.rowb.app/api/render?title=My+post&tag=Subtitle&format=png"

No SDK to install. No build step. Just a URL in your page.

Questions,
answered.

The details, without the fine print.

How does “per unique image” billing work?

The same card (same title + tag + format) is identified by a hash of its visual inputs. The first render counts toward your monthly quota; every repeat request is served from cache and never billed again. This means link previews, thumbnails and embeds of the same image cost you nothing extra — only genuinely new images count against your limit.

Do I need a headless browser or a server?

No. oganvil renders cards with workers-og on Cloudflare Workers — there’s no Chromium, no container and nothing to maintain. That’s exactly why cards render in ~330ms CPU and stay reliable under load.

Is it really a single meta tag?

Yes. Once you have an oganvil URL, you add one line — <meta property="og:image" content="https://oganvil.rowb.app/assets/og/index.png"> — plus the matching twitter:image if you want. Then deploy your page.

Why 1200×630?

It’s the social-platform sweet spot — the size most platforms use for link previews (X, LinkedIn, Discord, Slack, WhatsApp). You can request PNG or SVG, both at 1200×630.

What if I hit my quota?

On paid plans you get email alerts before it happens — at 50%, 90% and 100% of your monthly limit. If you exceed it, the API returns a clear 429 with your usage and a link to upgrade. Counters reset automatically on the 1st.

Can I cancel anytime?

Yes. Every paid plan is month-to-month and cancelable anytime. There are no contracts and no lock-in — cancel and you drop to the free tier.

Make every link worth a click.

Ship branded social cards in an afternoon. Free to start — no card required.

Get started free 50 unique images / month, free