One template, every page
Design the card once in HTML and CSS at 1200 by 630. Each page passes its own title, author, price or category as variables.
Open Graph image API
Design one template, then let every page render its own share card on demand. The og:image tag points straight at Renderwolf, so there is no build step, no image bucket and no key in your markup.
Create a free accountRead the API docs

One template
The usual answers are all overhead. Generate cards at build time and the build gets slower with every page and stale the moment content changes. Generate them at request time and you are running a browser, a queue and a bucket. Skip them and every share looks the same.
A signed render URL removes the middle entirely. The tag points at Renderwolf, the card renders on the first request and comes from cache afterwards, and changing the template changes every card without touching your application.
POST /renderwolf/v1/sign
Authorization: Bearer rw_live_...
{
"kind": "image",
"template": "og-card",
"vars": { "title": "Why we own our hardware" },
"width": 1200,
"height": 630,
"ttl_hours": 0
}
<meta property="og:image" content="https://..." >Capabilities
The card is generated by the same template engine as the rest of your images, and delivered by a URL you can put anywhere.
Design the card once in HTML and CSS at 1200 by 630. Each page passes its own title, author, price or category as variables.
A signed URL renders on demand at the URL itself, so the tag points at Renderwolf rather than at a file your application had to create and host.
Change the stored template and every card follows, including ones already shared. No build step, no cache to purge, no backfill.
The first request renders, and every identical request after it is a cache hit. Repeated crawls of the same card do not consume credits.
Your server signs the URL. The signature covers the parameters, so the template and the variables cannot be edited by whoever holds the link.
It is a URL in a meta tag. Next.js, Astro, Rails, Laravel or a static site all use it the same way, with nothing added to your runtime.
Use cases
Anywhere a shared link should explain itself rather than showing the same site-wide image.
A card per post with the headline and author, generated the first time somebody shares it.
Show the product name, price and image in the preview rather than a generic site card.
Give every page in the reference its own card so a shared deep link is legible.
Put the date, venue and title into the preview so a shared link explains itself.
Profiles and public boards get their own cards without a job queue generating images.
Each release shares with its own version and headline, from the same template.
Social cards are one use of the template engine. Certificates, badges, product graphics and personalised marketing images all work the same way, from the same stored HTML.
Pricing
Start with 250 free credits each month and no card required. A card costs one credit the first time it renders, and every identical request after that is a cache hit costing nothing, so repeated crawls of the same page are free. Failed work is refunded and reaching a cap pauses rendering rather than billing overage.
Questions
The details that decide whether this fits, without reading the whole reference first.
No. Put a signed render URL in the og:image tag and the card is rendered when it is first requested, then served from cache. Nothing is generated during your build and nothing is stored by your application.
Update the stored template and every card follows, including the ones already linked. There is no rebuild and nothing to purge, because the next request renders the new design.
Only if you ask it to. Signed URLs take a lifetime in hours, and zero means it never expires, which is what an og:image tag needs.
No. Your server mints the URL with the key and the key never travels in it. The signature covers the parameters, so nobody can edit the template or the variables and still get a render.
The template carries its own width and height, so set it once at the 1200 by 630 that the major platforms expect and every render matches.
Yes. It is an ordinary URL in a meta tag, so anything that renders HTML can use it. There is no SDK to adopt and no runtime to add to your application.
One credit per generated image, and repeats of the same URL come from cache for nothing. Crawlers hitting the same card repeatedly do not cost you credits.
Create an account, store one template and sign a URL. The first card is inside your free credits.
250 free credits each month, with no card required, hard usage caps and free cache hits.