article

I'm a Frontend Dev Who Can't Design. So I Let Claude Redesign a Client Site.

TL;DR I'm a freelance frontend dev. I can't design, but I'd been curious about AI design tools for a while, and I was paying for Claude Code Max. When a client asked if I could redesign their site, I said: let me try it with AI. This is the honest story of how that went — the answer to 'how far has AI design come' is 'further than I expected, with more hand-holding than I expected.' The how and why are the rest of this series.

I’m a freelance frontend developer. I build other people’s designs for a living, and I’m honest with myself about the line: I can implement a design, but I can’t make one. Left to my own taste, things come out looking like a dev did them.

So this isn’t a story about a designer. It’s a story about someone who can’t design deciding to find out whether AI can do it for him.

Why I even tried this

I’d been watching the AI design tools for a while before any of this. Google’s Stitch, the “describe it and get a UI” demos, the design-system-in-a-doc idea that kept showing up — I’d poked at them, even tried building a small version of that kind of thing myself. The question sitting in the back of my head was simple: how far has AI design actually come? Not the demo reel. The real thing, on a real site, with a real client who’ll say “no, that looks cheap.”

Two other things lined up at the same time. I was paying for Claude Code Max, and if you’ve had that subscription you know the feeling — you want to get your money’s worth. Push it at something big. And a client came to me asking if I could redesign their marketing site. Their existing agency design had landed badly; the layout was fine, it just looked cheap.

The site is a B2B landing page for a service in the early-childhood education space — the kind of page where an institution’s decision-maker lands, spends ten seconds forming an impression, and either reads on or leaves. In a category built on trust and warmth, a page that looks cheap quietly tells a careful buyer “these people are amateurs,” and they bounce. So “it looks cheap” wasn’t an aesthetic complaint. It was the product failing at its one job: turning that first impression into an inquiry.

Worth being precise about scope, because “redesign” oversells it. I wasn’t inventing structure. The layout, the section flow, the feedback, the images — all of that came from the client’s side, through an existing Figma-based process the previous agency had set up. What I was doing was a visual pass — type, spacing, color, component styling, the actual look — on top of a layout that was already decided. Skin, not skeleton. That’s a narrower job than “redesign” implies, and it happens to be the exact job AI is closest to being able to do.

So I didn’t get handed this. I volunteered for it. They asked if it was possible, and instead of quoting a designer, I said: let me try it with AI. Part curiosity, part getting my subscription’s worth, part “this is exactly the test I’ve been wanting to run.”

This post is the honest version of how that went. I’m keeping the client anonymous and skipping the design specifics — this is about the experience, not the brand.

The part nobody tells you: you still have to make decisions

My first mistake was thinking “AI can design” meant “I don’t have to.”

I can’t draw a layout, but it turns out I still had to decide things — the vibe, the reference sites, the rules for color and type. The AI will happily generate something for any answer, but it won’t pick the answer. That’s still on you, and if you don’t pick, you get mush. So before generating anything real, I set some ground rules and had it produce a few concrete directions to react to instead of staring at a blank page. (How I did that — the rules doc, the parallel-generation trick — is its own post.) Choosing between real options is a thing I can do. Designing from nothing isn’t.

Here’s the part that’s easy to get wrong: this doesn’t mean I’m secretly good at design. The skill it needs isn’t creating a good look; it’s recognizing a bad one. Those are different muscles. I can’t produce the right shade of blue, but I can see when a section reads as cheap — the same eye any user has walking onto a page and thinking “this feels off.” The whole bet of this project was that the recognizing half is enough, as long as you supply it every single round and let the AI do the creating.

Then the real work started, and it was a loop

Here’s where the “AI does it for you” fantasy quietly died.

The actual shape of the work wasn’t “describe, receive, done.” It was a loop, over and over, per section: have it build the thing, screenshot the render, look at it, tell it what’s wrong, do it again. And what was wrong was almost always visual — spacing, color, proportion, the kind of thing you see instantly and can’t name in a spec.

I didn’t feel how much of this there was until I counted later. Roughly one in four of my prompts was a correction — not a new instruction, not a question. Just me telling the AI that what it had just done was wrong. Four prompts to move forward, one to walk something back, on repeat.

The AI could build a section fast. What it couldn’t do was look at its own output and tell that it landed wrong — it would confidently say it matched the design when it nearly did, and “nearly” was the whole problem. So every round, I was the eyes: the one going “no, not like that.” (The mechanics of that loop — how the near-misses showed up, how you get an AI to apply a designer’s marked-up feedback — is a post of its own.)

The brand-heavy pages needed far more human judgment than the functional ones — that’s where nearly all the correcting went, and it’s a split worth its own post. So far four of those are done. The rest are still in flight; the project isn’t even finished.

How much work was it, really?

This is the part I can actually measure, because Claude Code keeps every session on disk. After a while I got curious and parsed my own logs — every prompt, every timestamp.

It came out to 5 git worktrees, 103 sessions, 3,297 prompts, spread across 29 working days inside a 39-day window. That last number is the honest one. This wasn’t 39 days of full-time design work. It was something I picked at between other jobs — a day here, a heavy day there, nothing for a stretch, then back at it.

0 100 200 300 400 05-22 06-01 06-22 06-30 Prompts per day — 29 active days inside a 39-day window. Peak: 405 on May 28.
Prompts per day, from my own Claude Code logs. Bars are days I worked; gaps are days I didn't.

I like that I can say that precisely instead of guessing “about a month.” It’s 29 days I actually touched it, not a full-time month of it.

One caveat I won’t pretend away: I was on Claude Code Max, and the logs show how much that mattered. Across the whole project the model wrote about 20.5M output tokens, and — because every correction re-sends the context — it read roughly 5.2 billion tokens from cache. That’s the real cost of a loop where one in four prompts is a walk-back: you don’t just pay for the fix, you re-read everything around it, over and over.

On Max that’s a flat fee, so I never watched a meter or hit a wall. On a metered API the same 5-billion-token, correction-heavy loop is identical work and a very different bill, and I’d have been thinking hard about cost per iteration. I won’t quote a dollar figure I didn’t actually pay — but “unlimited retries” was quietly carrying a lot of this project, and that’s worth knowing before you assume the workflow ports cleanly to a pay-per-token setup.

So, how far has AI design come? (the short version)

Out of 3,297 prompts, the number I keep coming back to isn’t the total. It’s one in four. Roughly one in four of my prompts was a correction — me walking the AI back, not pushing it forward. That single ratio is the honest answer to “how far has AI design come”: it works, further than I expected, but with far more hand-holding than the demos suggest. A frontend dev who can’t design can ship this. Just not by describing it and walking away.

That’s as far as I want to take the verdict here. Why that one-in-four breaks down the way it does — which parts of the work the AI carried almost alone and which ones it couldn’t stop getting wrong — is a longer story than a closing paragraph can hold. So is how I set the rules up, and how you get an AI to apply a designer’s marked-up feedback without it hallucinating.

There’s one more I didn’t expect to be writing. Halfway through, I built a dedicated design agent to automate the loop. By the end of the project I’d almost stopped using it — and the reason it fell out of use is the thing I want to explain most. Those are the next posts in this series.

For now, if you’re a dev sitting on a Claude Code subscription wondering whether you can pull off design work you have no business doing: yes, mostly. Just don’t expect it to be hands-off.

Researched and drafted by me and Claude, from my own logs.