WordPress Images

Why Should a Design Become a File at All?

Dynamic image, live badge, personalised image. Three ways to embed a design, and one question that picks between them.

Every static graphic on a page is a snapshot of what was true when somebody exported it. There is a whole category of quiet wrongness that follows from that.

A dynamic template being prepared for embedding

Here is a thought that took me embarrassingly long to have: why does a design have to become a file at all?

We are so used to the sequence of design, export, upload, insert, that we barely notice it. But an image on a web page is just something the browser asks for. If the thing answering that request can render your design on the spot, then the design never has to be frozen into a PNG that starts going out of date the moment you save it.

That idea gives you three quite different tools, and choosing between them is the whole art.

Three ways to put a design on a page

They all live under View, then Dynamic Template Shortcodes, and they exist as Gutenberg blocks and as Elementor widgets too. Search for “wpie” in the widget panel and they are there, and the plugin settings have a Widgets and Blocks tab if you want to switch either integration off.

All three embeds, and the blocks and Elementor widgets that carry them, are part of WunderPaint Pro.

Dynamic Image: the design, rendered exactly

This is a real image, drawn by the same engine that draws your canvas. Every pixel matches what you designed: layer effects, blend modes, image filters, the lot.

It re-bakes when the design is saved or the template changes, not on every page view. So it is fast, it looks perfect, and it stays in step with your design without you touching it.

Use it for anything where fidelity matters, which is most things: header graphics, article images, product cards, anything with photography or effects in it.

Live Badge: nothing to re-render

A live badge is not a picture at all. It is vector graphics, as SVG, and the server fills its bound texts in as the page is served.

That means there is no re-render step and nothing to wait for. A price, a rating, a headline, a “last updated” date: change the post and the badge changes with it. On a site with a page cache the badge is exactly as current as the page it sits on, which is what you want, since editing the post refreshes both.

The trade is fidelity. The browser lays out the text itself, so spacing and line breaks can shift a little, complex layer effects get simplified, and pixel layers come along as static images inside the SVG. Which leads to a simple design rule: keep a live badge to text, shapes and gradients, exactly the things that translate cleanly to vectors.

Personalized Image: rendered per visitor

This one renders in the visitor’s own browser and fills the template from URL parameters. Add ?name=Anna to the link and the graphic greets Anna by name.

The elegant part is what it does not do: no file is created per visitor. Nothing is stored, nothing accumulates, there is no folder slowly filling with a thousand near-identical images. The template plus the parameter is the whole thing.

It is made for campaign links, personalised invitations, referral pages, anywhere the same page should feel addressed to the person opening it.

The view menu with guides, grid, proofing and dynamic template shortcodes
Everything needed to embed the current design sits in one place, which is a small thing that saves a lot of hunting.

How to choose, in one question

Ask what changes and how often.

The content changes when the post changes, which is most of the time. Dynamic Image. It re-renders on save, it looks exactly like your design, and it costs nothing on page load because it is a real image file being served.

The content changes on its own, without anyone editing anything. A price feed, a stock level, a date, a counter. Live Badge. This is the only one of the three that can be correct at 3am on a Tuesday without a human involved.

The content depends on who is looking. Personalized Image. Nothing else can do this without generating a file per person, which is a road you do not want to walk down.

If two of them would work, take Dynamic Image. Fidelity is worth more than liveness for almost everything, and a design that looks exactly right is the point.

Practical things I learned the hard way

Design the badge as a badge. A live badge that was designed as a full illustration will disappoint you. Start from the constraint: text, shapes, gradients, generous padding, a shape that tolerates the text being slightly wider than you expected. Design for SVG and it looks deliberate rather than degraded.

Give live text room to breathe. The browser lays out that text, and browsers disagree about fonts by a pixel here and there. A badge with the text jammed against its own border will eventually clip on somebody’s machine. Padding is your insurance.

Remember it is still an image on a page. Give it sensible dimensions in the layout so the page does not jump while it loads, and write alt text. A generated graphic is exactly as invisible to a screen reader as a hand-made one.

Test the empty case. What does the badge look like when the price feed returns nothing? Design that state on purpose rather than discovering it.

A dialog building an interactive showcase from a set of images
Once a design can be embedded rather than exported, the boundary between graphic and component gets pleasantly blurry.

The mental shift

What I like about all this is not the time saved. It is that it removes a category of small lies from a website.

Every static graphic on a page is a snapshot of what was true when somebody exported it. The price banner from March. The “open until 6” sign made before the hours changed. The team graphic with the person who left. None of these are anybody’s fault, they are just what happens when information gets baked into pixels.

When the graphic is generated from the same data the rest of the site uses, that whole class of quiet wrongness disappears. The page is correct because it cannot easily be anything else, and that is a much better foundation than remembering to update things.

Table of Contents

Learn it by building something

Every week one thing you can make the same afternoon, from dynamic templates to 3D type. Written down step by step.

One mail a week, and then it ends.
Unsubscribe in one click.

Free

Chaos Art

Autonomous painters make one-of-a-kind abstract art in 3D space - gestures, art movements, painterly media, and embeds that paint a new original for every visitor.

Download the free WunderPaint Plugin for WordPress

The Image Editor & Design Studio

Everything described here can be done in the browser, on your own site. The live demo runs the full editor with nothing to install.

Design Tools

Brush & Paint Styles

Paint with six styles that mix pigment instead of blending it, pick from thirty-seven tips shown as real strokes, draw a tip of your own out of shapes, and let the color travel along the stroke.

Workflow & Automation

Dynamic Templates: Build the Design Once, Let Your Posts Fill It In

You build the layout once, tell a few layers where to get their content, and from then on every post, product or page renders its own version.

Print & Craft

Making Things That Fold: Dielines, Duplex and Why Previews Matter

A gift box, a paper crane, a bunting banner. They look simple, and they fail in ways flat design never does, because there is a second geometry underneath.

WordPress Images

Why Should a Design Become a File at All?

Every static graphic on a page is a snapshot of what was true when somebody exported it. There is a whole category of quiet wrongness that follows from that.