Every brand eventually needs the same image a thousand times over — the same certificate with a different name, the same product card with a different photo, the same offer with a different price. Doing that by hand in a design tool is the kind of work that quietly eats a team alive. SwarmGen is our answer: design the asset once as a web page, connect your data, and let it render every variation for you.
SwarmGen is a dynamic image and PDF generation platform. You build a template as ordinary HTML and CSS, mark the parts that change as {{merge fields}}, and SwarmGen renders a finished PNG, JPG or PDF for every set of values you send it. It started life as an internal tool — we needed branded assets generated automatically from our automation workflows — and it is now a product anyone can sign up for. The homepage puts the whole idea in a sentence: build a template once, connect your data, and SwarmGen handles the rest.
The problem: personalised assets don't scale by hand
Personalised images are deceptively expensive. The design itself takes five or ten minutes; it is everything around it that hurts — the request to a designer, the wait in a queue, the export, the hand-off to whoever uploads it. For one image that is an afternoon. For a thousand it is simply impossible, so the usual outcome is that the personalisation never happens at all: generic cards, missing social previews, certificates typed up one at a time. When we automated product OG cards for an e-commerce team, the design work was never the bottleneck — the human hand-offs around it were.
Who it's for
SwarmGen is built for anyone who needs the same asset, personalised, again and again: marketing teams producing social and OG images, e-commerce stores generating product cards, and operations teams churning out certificates, coupons and badges. And because everything runs through an API, it is just as much for the automation builders who want a render step inside a Make.com, Zapier or AI-agent workflow without ever opening a design tool.
Feature 1 — Templates are just HTML and merge fields
There is no proprietary editor format and no drag-and-drop lock-in. A SwarmGen template is a normal HTML document you can preview in any browser. Anywhere a value should change, you drop a token like {{headline}} or {{price}}. Image fields take a URL, and SwarmGen fetches that image and inlines it so the render is fully self-contained. The field name tells SwarmGen the type — anything that looks like an image, link, date or number is detected automatically — and text values are HTML-escaped on the way in, so a stray quote or angle bracket in your data can never break the layout.
{{headline}}Summer Sale{{price}}£29{{image}}photo.jpgFeature 2 — AI Assist: edit the template in plain English
Not everyone wants to write CSS. SwarmGen's AI Assist is a built-in editor powered by Anthropic's Claude: you describe the change you want — "make the accent violet", "tighten the spacing", "add a price badge" — and it rewrites the template for you, carefully preserving your merge fields and colour variables. There are two tiers: a fast model for quick edits and a stronger one for bigger creative changes. Switch on include brand and it works from your saved brand colours and fonts, so what it returns already looks like you. It edits the template you are working on rather than starting from a blank page — the model always has your current design as its context.
Feature 3 — A real render engine, not a screenshot hack
Behind the API, SwarmGen renders with headless Chrome driven by Puppeteer — the same engine that paints the page in your browser — so what you design is what comes out, pixel for pixel, as a PNG, JPG or PDF. There are two ways to render: synchronously, for an instant single asset, and asynchronously through a Redis-backed queue (BullMQ) for heavier jobs, with an optional webhook that calls you back the moment a render is done. Source images are fetched server-side over HTTPS only, with private and cloud-metadata addresses blocked and a size cap enforced, so a template can never be turned into a tool for reaching somewhere it should not. Finished files land in Cloudflare R2 behind a signed download link that stays valid for five days.
Feature 4 — A render API built for automation
This is where SwarmGen earns its place in a stack. Generate an API key — keys are scoped to render-and-read, so they can never edit or delete a template — add an Authorization: Bearer header, and POST your data to a template's render endpoint. Loop your rows and fire one request each, and you get a finished, on-brand asset back for every one of them. Make.com gets a dedicated app, Shopify products import straight into template fields, and anything that can send an HTTP request — Zapier, Airtable, an AI agent, your own code — can drive it. Every render even logs itself to Time Hive, our automation-ROI ledger, so the hours this saves are counted rather than guessed (we wrote about that ledger here).
Feature 5 — Your brand, baked in
Consistency is the whole point of generating assets instead of designing them. Brand colours — primary, secondary and tertiary — and brand fonts live at the workspace level, and templates reference them as CSS variables, so one change re-themes everything that uses them. Per-render colour overrides let a single template produce many on-brand variants without duplicating it, and every override value is validated before it touches the stylesheet, so nothing can break out of the :root block it belongs to. Whether it is the first asset or the ten-thousandth, it comes out looking like you.
How it works, end to end
The loop is three steps:
- Build a template in HTML and CSS — or have AI Assist draft it — mark the parts that change as
{{merge fields}}, and pick a size from the preset library of social, story, ad, print and OG-card formats. - Connect your data — type it in, import a Shopify product, or send it from an automation.
- Render — call the endpoint (or press the button) and get back a PNG, JPG or PDF, either instantly or through the queue with a webhook when the batch is done.
Under the hood it is a modern, self-hostable stack: a Next.js app with a Pages-Router editor, Supabase (Postgres) with row-level security isolating every workspace's templates and renders, a Puppeteer worker pulling from a Redis-backed BullMQ queue, Cloudflare R2 for storage, Anthropic's Claude behind AI Assist, and Stripe for billing. The free plan gives you 50 renders with no card — enough to build your first template and watch it come out the other side.
Why we built it
SwarmGen exists for the same reason everything in the studio does: there is a category of work that is genuinely valuable but should not need a human every single time. A person designing the template? Absolutely — that is craft. A person re-exporting that template five hundred times with different names on it? That is the part we automate away. It is one of a handful of internal tools we have turned into products, alongside Time Hive and the others on our applications page. If you build automations, a render step is often the missing piece — see where it fits in our automation services, browse the rest of the hive's notes, or read the docs and wire up your first template.