Image Templates
Define a template once. Render thousands of personalised images at the edge — OG cards, social banners, product images, certificates — in under 50ms via CDN URL. No queues, no Puppeteer, no separate service.
Variables in the URL override template defaults. The result is cached globally — identical URLs hit the CDN edge, not the renderer.
One renderer, every image generation need.
Personalised OG images for every blog post, product, or user profile. Update the title param in the URL.
/render/og-card?title=Hello+World&author=SeanTwitter/LinkedIn cards with dynamic text and images. One template, infinite variations.
/render/social-banner?product=Widget+Pro&price=$49Auto-generated product images for e-commerce feeds, email, and ads with live product data.
/render/product-card?name=Sneakers&image=product.jpgPersonalised email header images with customer name, offer, or dynamic content.
/render/email-header?name=Alice&offer=20%25+offAward certificates and completion badges with recipient name and date rendered on the fly.
/render/certificate?name=Alice+Smith&course=ReactBranded images with embedded QR codes — combine logo, text, and QR in one URL.
/render/qr-card?url=https://example.com&title=Scan+meTemplates are JSON. Layers compose like a design tool — rendered at the edge by a Rust/WASM engine using tiny-skia and cosmic-text.
textRendered text with font, size, weight, colour, alignment, and word-wrap
imageExternal image with cover/contain/fill fit and rounded corners
rectRectangle with fill colour, rounded corners, and optional border
circleCircle with fill colour and optional border
gradientLinear gradient overlay — top-to-bottom, left-to-right, and more
qrQR code from any data string, with custom foreground and background colours
Define width, height, background, and a layers array. Variables use {{variable}} syntax anywhere in string fields. Create templates via dashboard, API, or MCP tool.
{
"width": 1200,
"height": 630,
"background": {
"type": "solid",
"color": "#0a0a0c"
},
"layers": [
{
"type": "rect",
"x": 0, "y": 0,
"w": 1200, "h": 630,
"fill": "#5340FA",
"opacity": 15
},
{
"type": "text",
"content": "{{title}}",
"x": 80, "y": 200,
"font": "Inter",
"size": 64,
"weight": 700,
"color": "#ffffff"
},
{
"type": "text",
"content": "by {{author}}",
"x": 80, "y": 300,
"size": 28,
"color": "#a1a1aa"
}
],
"variables": [
{ "name": "title", "type": "text",
"default": "Untitled" },
{ "name": "author", "type": "text",
"default": "Spronta" }
]
}Stop paying $49–$399/mo for a separate image generation SaaS. Spronta bakes it into the CDN you're already using.
| Product | Price | Latency | Formats |
|---|---|---|---|
| Bannerbear | $49–$399/mo | 2–5 seconds | PNG only |
| Vercel OG / Satori | Included in Vercel | ~500ms cold start | PNG only |
| Cloudinary Dynamic Images | Usage-based ($89+/mo) | ~200ms (CDN) | JPEG, PNG, WebP |
| Spronta Templates | Included in CDN plan | <50ms | WebP, AVIF, JXL, PNG |
Build your template design workflow however you want.
REST API
POST /api/images/projects/:id/templatesMCP Tool
create_template { name, template, variables }Render URL
render_template_url { templateName, variables }Image templates are included in every Spronta plan — same CDN, same API key, no extra invoice.