ai
The block images are generated now

The first block images here came out of packs I bought from a few stock platforms, which worked until I wanted a picture that was not in any of them. After that I did what everyone does and pulled things off Google Images, and that is a licensing position I could not have defended for five minutes: a search result is not a licence, and "it was on the internet" is not one either. Neither approach gave me art that matched the site anyway — the packs were generic, and the search results arrived in a different palette every time.
So this month I regenerated the lot.
The raster art comes from OpenAI's gpt-image-1, the model that went into the
API on 23 April and the one behind image generation in ChatGPT. I gave it the
site's own hex values and asked for the same composition rules on every pass,
which is the part stock never offered: a house style I can re-run.
Claude does not draw pixels, so Claude Opus 4 took the other half of the work
and wrote the covers as code. That is what
scripts/generate-post-covers.mjs
is — each cover composed as SVG and rasterised with sharp, so the artwork is
editable, diffable, and reproducible instead of being a folder of opaque
bitmaps.
I will not overclaim the legal result. Whether a purely generated image is copyrightable at all is genuinely unsettled, and the training-data lawsuits are still running. What changed is the thing I actually needed: no one else's licence is in the way, and I can regenerate any of it on demand.
Written by
Deyan Peev
Founding Engineer · Sofia, Bulgaria


