Should I vibe code
Template and stock-based social graphics for marketers and creators
Text on a photo is a render call. Five million licensed photos and 7,600 embeddable fonts are the product.
?
Their verdict, the Pro price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Stencil is a text box over a stock photo, and the text box is a solved problem. Satori or a headless browser turns a template into a 1200×630 PNG in an afternoon, batched from a CSV, with your typeface and your palette baked in — and that homemade version is genuinely better than the product for anyone generating images rather than designing them, because it runs in CI and nobody has to open a browser. What does not come in the repository is everything Stencil actually bills for: five million photos and three million icons cleared for commercial use, 1,350 templates somebody with taste drew, and 7,600 fonts you are licensed to embed. Those are contracts, not code, and no amount of prompting produces one. So the split is clean and worth saying plainly — programmatic images from a template you control is a build; sitting down to make fifty Instagram posts by hand is not, and the missing piece there is a library you cannot assemble at hobby scale. The only way this bites you is legal rather than technical: an image is a redistributed raster of somebody's font and somebody's photograph, and the licence travels with it.
What actually breaks
not "if". the specific failures.
- Nothing in the render path — template in, PNG out, deterministic and boring, which is the point
- Font licensing, the moment you reach past Google Fonts: a webfont licence covers displaying glyphs in a browser, not rasterising them into an image you advertise with
- Stock photo terms, which differ per asset and per source and which nobody re-reads before the image goes on a paid ad
- Text fitting, when the headline is nineteen words and the template was drawn for five
- Emoji and non-Latin scripts, which is where every HTML-to-image renderer quietly falls over and emits tofu boxes
- Colour, if the same artwork ever goes to print, because sRGB out of a browser is not CMYK and nobody finds out until the proof arrives
Is that you?
the verdict is a default, not a law
- The images are generated from a template you control — OG cards, quote graphics, release banners, per-post thumbnails
- You own or have licensed every asset that goes into the frame
- It runs from a CLI or in CI, and the output is committed or cached rather than served live
- What you actually need is the stock library, which is the one part of this you can only license
- The output goes on paid advertising for a client, where the licence chain has to be provable rather than assumed
- You want a place to sit and design, in which case this is a Canva question rather than a code question
If you build it anyway
the checklist, then the prompt that enforces it
- Write the asset manifest before the renderer: every font and image the generator may use, with its source, its licence, and whether that licence covers commercial use and embedding in an exported raster. An asset with no entry does not get used.
- Bundle and pin fonts locally. Fetching a webfont at render time makes your output depend on someone else's CDN and, more quietly, on a licence that probably only covers web display.
- Solve the ugly string before the pretty template. Auto-fit, then wrap, then truncate visibly — an overflowing headline that silently runs off the canvas is the bug that ships to a thousand OG cards.
- Render deterministically and commit a few reference images. Then a font bump that moves every headline four pixels shows up in a diff instead of on Twitter.
- Test with emoji, an accented name and a non-Latin script on day one. Font fallback is the actual hard part of HTML-to-image, not layout.
- Keep templates as data and the renderer dumb, so a new size is a new file rather than a new code path.
I am building a social image generator: templates plus text, rendered to PNG. The
failure I care about is not the renderer — it is publishing an image I am not licensed
to publish. Treat these as constraints and push back where I break them.
1. Before any rendering code, create an assets manifest listing every font and image
the generator may use, with source, licence, and two explicit booleans: commercial
use allowed, and embedding in an exported raster allowed. Refuse to add an asset
that has no manifest entry.
2. Bundle fonts locally and pin the files. Do not fetch a webfont at render time, and
flag any face whose licence only covers web display.
3. Write the worst-case string test before the first pretty template: a nineteen-word
headline, a name with an emoji, a title in Thai. Make the template survive all
three — auto-fit, wrap, then visible truncation. Never let text run off the canvas.
4. Templates are data. HTML or JSON in, PNG out, with no template-specific logic in
application code, so adding a size is adding a file.
5. Make output deterministic: identical input produces identical bytes. Commit a small
set of reference renders and diff them in CI.
6. Render at 2x and downsample, and expose the error-tolerant path for logos so a
transparent PNG does not arrive with a black fringe.
7. Emit a sidecar record with every image listing the assets used and their licences.
This is the artefact I will need when a client asks where the photo came from.
8. Provide a batch mode over CSV or JSON, plus a dry run that reports which rows would
overflow before anything is written.
9. No accounts, no hosted editor, no public upload endpoint. This is a CLI or a
library, and it stays one.
10. Deliberately out of scope: a stock photo library, a template marketplace, and
posting directly to social accounts. If what I actually want is five million
licensed photos and somebody else's taste, say so and tell me to pay the $15.That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
You want the library, not the renderer. Pro is $15 a month month-to-month ($9 if you pay for a year) and Unlimited is $20 ($12 annually), and what that buys is five million royalty-free photos, three million icons, 1,350 templates and 7,600 fonts you are allowed to embed — assembled, cleared and searchable. If your images are generated from a template rather than designed one at a time, the subscription buys you nothing you cannot npm install.
There is nothing to exit. The templates are files in your repository, the fonts are files next to them, and the output is PNGs on disk that keep working with no service behind them. Keep the asset manifest in the repo too — it is the only part of this that is hard to reconstruct later, and it is the part someone will eventually ask you for.
Converts HTML and CSS to SVG, which is how most homemade OG-image generators render text over a background.
Canvas library that does the heavy lifting if you want an interactive editor rather than a batch renderer.
Open-source design platform, if the honest requirement turns out to be a place to design rather than a script.
Questions
Is Stencil still running?
Yes. It was acquired by Namecheap — the site carries a "Powered by Namecheap" mark and the product lives on at namecheap.com/visual/stencil — and the pricing page was still serving Free, Pro and Unlimited tiers when this entry was written. It is not a fast-moving product, but it is not abandoned either, which matters if you are weighing a subscription against a weekend.
Fonts are just files. Why is licensing a real problem?
Because a generated image is a raster of the glyphs, not a webpage that requested them. Plenty of webfont licences cover serving a face to a browser and say nothing helpful about baking it into a PNG you then run as an advertisement. Google Fonts and the SIL Open Font Licence are fine; the branded face your designer bought for the website frequently is not, and the licence PDF is the only place that answer lives.
What about the templates — can I not just generate those too?
You can generate a hundred layouts and they will all look like a hundred layouts. What a template library is selling is the decision that this headline goes at 64px in this corner over this kind of photograph, made by someone with taste and tested against real strings. If you are producing one visual identity's worth of images, you only need a handful of those decisions and you can make them yourself. If you need fifty different looks a month, you are buying taste, and taste does not come out of a renderer.
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
You can build the canvas in a weekend. You cannot build a licence to 170 million stock assets for ten dollars.
Cut out, resize, export consistently. It’s a pipeline, and pipelines are what agents are good at.
You can rebuild the editor in a weekend. You cannot rebuild the licence on five million stock photos.
last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice