This week: the way every static gets built now, why a client note costs minutes instead of a reshoot, and a kit so you can run it yourself, tested end to end, Photoshop file included.

Hey all, and happy Friday,

I'm writing this on Wednesday, because tomorrow I fly to North Carolina for a Friday night wedding. I don't think I've ever been to a Friday night wedding. I'll report back.

Last Thursday and Friday I was at the Foxwell events in New York, where I spent a lot of time saying out loud what this whole issue is about: the way we make and edit ads has flipped, and it actually pays for itself. I'm still a little baffled by it. There's more on that below. The important stuff comes first, though.

Saturday morning we met James's cousins at the playground. The oldest is 8, and he was thrilled to babysit. He followed James everywhere, kept him from eating things off the ground and mostly kept him out of trouble. At one point he walked over to us and said, more or less, "I'm tired. Watching James is really hard. He's crazy." That's the job, buddy. We asked for his rate.

Because it's Park Slope, we also ran into two of James's friends from daycare, and the three of them did laps on the medium slide: up the stairs, down the slide, repeat, roughly forever.

Lunch was at a French-Chinese fusion place in the neighborhood that is trying very hard. They serve French onion soup rolls. The food was mid. Then James and I both napped for two and a half hours, which I have not done in years and would like to do every Saturday for the rest of my life.

Sunday was soccer, where James listened slightly less than last week, scored a goal or two, and mostly wanted to dribble straight into the street. After that came a backyard bagel party, where he and his very tall friend took turns climbing into a play tunnel and falling on each other. Each of them cried for five seconds and then forgot about it. At one point the tall one fell on Maddie, and she could barely get him back up.

That night we tried The Lion King. James said "roar, lion, giraffe, hippo" a lot and checked out right around "I Just Can't Wait to Be King." Maddie and I were completely into it. The movie was over for the household at minute 15.

The real hit of the weekend was a game I invented called Fast Slow. You do everything very, very slowly, and then everything very, very fast. It's a podcast at 0.5x, then at 2x. James loves it. Linus loves it too, possibly because he thinks it ends in a snack.

Linus also went to the vet on Saturday. He's down a pound, and the vet thinks he could lose five more. We pulled up his weight chart, and it starts climbing the month James was born, because James feeds him constantly. That is also Linus's main reason for liking James. We're working on it. Linus is not on board.

I also finished Fleishman Is in Trouble for book club, so I'm back to my nonfiction book about meditation. I'll let you know if it takes.

Anywhooo.

Two weeks back I walked you through an AI ad that arrived as a layered Photoshop file rather than one flat PNG. Last week was all snipes: one ad built for one hyper-specific person, and why the riches are in the niches.

This week the two ideas ran into each other, and I think it's the biggest shift in how we work since we started touching AI at all. Every static my team ships now gets built the same way: the image model produces a picture with zero words in it, and code sets every word on top. That single split is why the ads look premium, why a client note costs minutes, and why we can finally afford to brief the tiny, weird, specific people I won't shut up about.

Before and after

Here's the comparison, three brands, each pair built from the same angle.

Three brands, pre- and post-switch. Before: infographics, gradients, product cutouts. After: a single photo that carries the story, the actual product photographed in, and every word typeset. Logos and product names are blurred.

One of these clients once described our earlier work as "cheap, like Canva." Fair enough. It was a touch Canva. The strategy is identical across both columns. Three things changed:

  1. The photo carries the story, and it contains no words.

  2. The actual product gets photographed into the scene instead of pasted over it.

  3. Code sets every word, in the brand's own fonts.

Brief to static

Everything starts from a brief a strategist has already written: persona, problem, headline, format. From there:

  1. The plate. GPT Image 2.5 generates the photo with no words anywhere. If people appear in the ad, the look is candid, shot-on-an-iPhone. If nobody appears, the look is premium studio photography. For product brands, the official packshots go in as references, so the model photographs the real product into the scene with real light and a real shadow.

  2. The plate check. A human signs off on the photos before any type goes on. A plate fixed after the type lands costs ten times as much.

  3. Type in code. We upscale the plate, then Claude typesets every word in HTML using the client's licensed fonts and their actual logo files, and renders it in a headless browser. Phone screens and app UI get built in HTML too, never drawn by the image model.

  4. The cold read. A fresh Claude that never saw the brief looks at each ad and reports what's for sale and what each line means. Any line that can't land inside two seconds gets rewritten, up to three rounds.

One ad, disassembled. Left: the plate exactly as the image model produced it, zero words. Right: the finished ad once every word was set in code. Logos and product names are blurred.

Most of the premium feel is restraint, and most of the restraint came from me being a pain in review. A few of my real notes from the last two weeks:

"i think you should be taking the product images and using them as references in GPT… rather than compositing them afterward." (A composited product never stops looking like it's hovering.)

"the badges are far too small." (They genuinely were.)

"we also don't need a CTA for every ad."

"i'd rather just darken the background." (That one replaced a glow behind the copy, which screamed 2014.)

Each note turned into a rule in the process, so in theory I only say each thing once. The theory holds most weeks.

The speed still breaks my brain a little. One recent batch for a protein brand needed 33 plate calls and 36 minutes to generate every photo in the set. A supplement brand's batch ran 45 minutes. That covers the entire photography. For a full batch.

The actually new part: the edit

This is the thing I truly want to talk about, and I can't say it loudly enough.

Every AI ad tool I've tried finishes in the same place: one flat image. Then the client asks "can we change one word" and you're back inside the image model, pleading with it to redraw everything and hoping the hands keep all five fingers.

When the words live in code, an edit is a text edit. Three real examples from the last week:

  1. For the prenup company, a note requested a 1x1 version plus one line swap, from "Made partner." to "Got a promotion." The note arrived at 1:24 pm. Six finished files existed by 1:28. The old route wasn't even on the table: as someone on my team put it, our editors "don't have the working files since they didn't create these." The HTML is the working file.

  2. I sent notes on a supplement batch: a larger discount badge, a testimonial card with more polish, fewer CTAs. All 16 ads, across two sizes, came back roughly seven and a half minutes later.

  3. On a protein batch, I requested a single headline swap ("Pack one protein-filled coffee instead.") plus bigger badges everywhere. The new versions were uploaded six minutes later.

Two real edit histories. Top row: one plate carried through five versions across a single evening of review. Bottom row: a one-line change plus a new size, delivered four minutes after the note. Logos and product names are blurred.

The top row shows one ad moving through five versions, most of them in a single evening while I worked the batch one ad at a time. The photo never moved. Version one was fine. Version five is the one I'd actually spend money on. That's what a cheap edit buys you: you stop settling for "fine" because the fix costs one sentence.

And when a client's designer actually wants the file, it opens as a layered Photoshop file: the photo sits on one layer, and every line of copy is live, editable type. The kit handles that too.

The riches in the niches just got affordable

This is where last week's issue comes back in.

A snipe used to cost real money. A new persona meant a fresh shoot, or another round with an editor, or a stock photo that was obviously not that person. So everyone briefed the broad version, "engaged couples," "people who want clean protein," "gamers," because the broad version was the only one you could afford to produce.

Now a new persona costs a single plate and a handful of HTML lines. So we brief the person, not the category:

Three real accounts. Each row shows the broad ad on the left, then the same brand briefed for very specific people. Logos, product names and labels are blurred.

For the prenup company, the broad ad shows a couple clinking glasses. The niche ads cover the couple whose dog is functionally their child, the woman who froze her eggs, and the woman who owned her condo before her fiancé ever moved in.

For the protein brand, the broad ad says "clean ingredients." The niche ads target the 35-plus lifter whose joints never get a deload week, women in menopause, and the guy who dropped the weight and now wonders why he looks soft.

For the gaming app, the broad ad asks whether you love one game. The niche ads go to the player whose disability means their hands fail before the final boss, and to the person who has died to Mr. X in Resident Evil 2 so often that their blood pressure has formed opinions.

A year ago, every one of those niche ads would have been a "maybe next quarter." Now they're a Tuesday.

The kit's demo. An invented washable rug, one generic ad and three niche ones. Identical product, identical three facts, one additional plate each.

The kit's demo proves the same point with an invented rug. The generic ad recites three specs. The niche ads translate the identical three specs into one person's outcome: the puppy owner, the toddler parent, the renter living with orange laminate. Each one cost exactly one more plate.

One brief, two builds

Right now we're running this head to head against our human editors, same briefs on both sides. Here's a batch for a supplement brand.

Three identical written briefs, built by our editors (left of each pair) and by the AI workflow (right). Logos and product names are blurred.

The visible difference is the photo: the product inside the scene, the sleep shown instead of the pouch, both products big enough to actually compare. The invisible difference is that the workflow verifies every claim against the brand guide and the store before it builds anything. On this batch it flagged that "one capsule a day" was wrong (the real serving is two), swapped out a testimonial nobody could trace in the brand's reviews for a real one, and softened a claim that would have given their compliance person a nervous tic.

To be straight about where this sits: the blind scoring between the two arms hasn't run yet. Once it does, you get the numbers, even if they embarrass me.

It animates, too

Because the plate contains no words, we can animate the photo without destroying the type. A video model moves the image (a light sweep, a glint, drifting powder), and the real type goes back on over every frame. The words never warp.

Two statics animated from their text-free plates. The photo moves while the type goes back on every frame, so nothing warps. Logos are blurred.

Raw footage in, four ads out

The same idea carries over to video. A wellness client handed us a folder of raw iPhone footage from their booth at a women's health summit: 61 vertical clips, roughly 25 minutes total.

  1. Claude transcribed every clip with word-level timestamps (ElevenLabs Scribe).

  2. It read the transcripts against the account's best-performing persona and pulled the strongest lines.

  3. It cut four ads of roughly 40 seconds each at the word level: jump cuts, fillers stripped, punch-in zooms, word-timed captions, an end card. The first four cuts existed about 37 minutes after I asked.

  4. My notes were blunt: "i think we need music, quick cuts, better zooms, less idle space, better story telling." Then: "it is hard in C1 to understand what exactly we are selling? it could be any supplement?" Then: "i need some more comphrenseive, exciting 3d model graphics."

  5. Every note became an edit to the cut's script rather than a restart. For that last one, it built seven 3D scenes in Blender, entirely from code.

Four of the seven 3D scenes Claude built in Blender from code for the summit cuts. None of it is AI-generated imagery.

Roughly six and a half hours after the first message, the cuts went to our editors with a voiceover script, sound effect cues and textless versions to finish. The editors still make it good. They just open version three instead of an empty timeline.

The cuts themselves stay unpublished for now: real summit attendees appear in them, and no face runs in an ad until the person attached to it says yes.

What it can't do yet

  1. It doesn't skip the plate check. Image models drift brand colors (a navy returns as royal blue) and occasionally invent a creative new label for a jar. A human reviews every plate.

  2. Video still needs editors. The voiceover, the sound design and the last 10 percent of taste stay human.

  3. The Photoshop export works and ships in the kit, but we barely touch it, because fixing a note in the HTML is faster.

  4. It doesn't write the brief. The persona, the problem and the "who is this for" still come from a strategist plus the account's data. Feed it a garbage brief and you get extremely premium garbage back.

What's in the kit

  1. Plates. A script that generates text-free plates with GPT Image 2.5, candid or premium, using your actual product photos as references.

  2. Ads as HTML. Four sample ads (one generic, three niche) carrying your brand's fonts, colors and logo in a single file.

  3. Render. One command converts every ad into a finished PNG. Change a word and run it again.

  4. Photoshop. A second command converts any ad into a layered PSD with live, editable type. We tested it on Photoshop 2026 this week.

  5. Prompts. Brief to plates, typesetting, the cold read, the edit loop, and the raw-footage-to-video-cuts workflow.

TLDR

  • Every static we ship is a text-free photo with the words set in code.

  • The premium look comes from photographing the real product in and typesetting every word in the brand's fonts.

  • The actual breakthrough is the edit: a client note becomes a text edit, it takes minutes, and the file opens in Photoshop with live type if anyone asks.

  • Cheap edits plus cheap plates make snipes affordable. Brief the person, not the category.

  • The same trick runs on video: a folder of raw footage became four cut ads in under 40 minutes, and notes became edits instead of restarts.

  • Humans still check the plates, finish the video and write the brief.

Have a great weekend,

Will

P.S. If the kit gets you a niche ad, reply with it. The weirdest persona wins.

Recommended for you

View all
caret-right