Since I got cancer and had 3 surgeries, I've had no strength gains AT ALL.

Until four weeks ago.

Not a Medium member? Keep reading for free by clicking here.

None
There was a surgery 3 in there too somewhere but you get the point.

So I had a brilliant plan and what I thought would be a brilliant blog post.

I was going to build a gym tracking website, and Claude was going to one shot it. Then I was going to write the article: How I got Claude Code to code an entire Gym App in one go

Then I could talk about conquering cancer and conquering coding. What a great story.

I made what I thought was a great product requirements document, I'd spelled out what I wanted (I even read it and edited three sentences). I had a Claude.MD file.

"Here's my PRD, build me the gym website" I told Claude, thinking I'd be done in 30 minutes.

What could go wrong?

Everything it turns out.

Who is this post for?

  • Anyone who's ever read a "I built an app with AI in one day" post and wondered why their experience was different — Because those posts usually skip the messy reality of debugging, rebuilding, and learning to work with AI's quirks.
  • Anyone who's tried AI coding and felt frustrated — This is validation that it's not just you. The tools are powerful but have very specific limitations that nobody talks about honestly.
  • Founders and non-technical builders — Anyone who's been tempted to skip hiring developers and just "AI their way" to an MVP. Spoiler: it's more complicated than that.
  • Me: I need to let off some steam

This post has some practical takeaways for you if you find that you just have a day where you suck at AI coding, like I did today.

Act 1: Claude decides that it has become Picasso

Before I show you the design that Claude made, I want to talk about design.

Now in my family, design is a touchy subject, precisely because there is 3 savants of design and then…. you have my mum and I.

Look at these two paintings that my dad has done.

They are both in watercolour (just as a flex).

None
None

Then my sister is a professional designer and my brother also has the epicest sense of design as well.

None
My sister makes incredible website and brand designs

Why this tangent?

Well because deep down I have this desire to be a great designer. Basically I want my dad, brother and sister, to be like "damn that was mean as what you designed."

When I look at beautiful art all day, you would have thought some would have come in via osmosis.

I'm also prompting through an AI that is meant to be a PHD student in my pocket and has 5,000 trillion dollars poured into it.

So the least Claude could do, could make A NICE AND COHESIVE SIMPLE GYM APP.

Nope, nope, the family dinner mockeries will continue.

Introducing my masterpiece.

None
I have no words. It's almost incredible as to how bad I can make such a basic thing look

Like what the actual heck is that?

Then i'd do a huge prompt, wait for like 2 minutes, only to get this.

None

Seriously, can the v0 team get acquired by the Claude Code team already and come together in some sort of grand UI ceremony to sort this out. They need to put that over eager emoji engineer onto the design team.

Look at the header it made.

None
Haveyoueverseenaworseheaderthanthis?

Oh and then this was my favourite. Let's just put stuff in the top left corner AND CROP THINGS.

None
BRO WHAT THE HECK ARE YOU DOING (was my prompt)

Don't get me started on the CSS

I had a CSS file that already worked! Claude took one look at it and thought, "This person clearly doesn't know what they're doing. Let me help."

It rewrote everything. From scratch. It was at this point I wondered if my brother isn't moonlighting on the Claude Code design team and has inserted this to the source code prompt:

if user==ChrisDunlop then do this system prompt
  "You are a terrible designer
 - you don't know the meaning of symmetry
 - you should make everything bad"

Shadcn? Never Heard of Her

Remember how I specifically, explicitly, in writing, asked for shadcn components? Yeah nah, that's why the top header looked so great.

None
I just loved the balance of the page

Another favourite moment was when Claude Code just started ticking off todo's that it hadn't actually done.

None
It literally did nothing it said it did in green lol

This was the first repo I had to throw in the bin

Yes I am happy to admit that today I sucked.

What did I do wrong and what did I learn?

Big PRD files and one shot requests are risky

Sure the other day I nailed a PRD straight to development, but I think it's high risk to do this.

The key lesson here is that while thinking for 15 minutes in a go is fun, you have to nail the patterns first. Otherwise you can get an absolute Trian wreck.

UI needs enforcing with a number of examples

It's not enough to just pass a simple markdown file describing what you want.

You need to have, the exact layout you want. Example headers, example cards and components.

Also don't just think because you say use Shadcn you know it's actually going to use Shadcn.

Can someone help me out please. Has anyone found a consistent way to do UI designs? I have tried so many ways and the results seem so inconsistent.

So how did I salvage the train wreck

I think a number of you will relate to this post. Basically, what do you do when you manage to create an absolute pile of crap with AI.

Step 1 — Extract User Stories

I got Claude Code to analyse the stupid repo and instead of talking about tech requirements, I asked it to just make a list of user stories.

None
I got it to at least salvage the user stories

Step 2 — Delete some of the stories

Claude is over eager so make sure you remove some of them. No I don't want my friends on Facebook seeing how bad my gym website looks thankyou very much Claude.

None
I don't need social features on my gym app

Step 3 — I implemented a design system

I had to go and make a repo that had a whole bunch of components of the design system that I wanted. Then I made design files for it as well.

Step 4 — I had to batch the requests

I started with sign in and sign up and then got the exercise screen working.

So here's the thing, even if you are frustrated and you get annoyed at the AI, if you make things simpler, you will make progress.

None
I started with this simple exercise library

My pattern in these cases is to just go:

  • list screen
  • details screen
  • fields
  • actions

Then make sure they are all working

Then you repeat for the next list screen.

None
It's a slower way to build but it is effective

Eventually, screen by screen, I was able to claw my way back.

None
Finally I got this main screen working

I'd call the above eating your vegetables when it comes to AI development. It works, but I was trying really hard to see if I could one-shot this whole site.

I still think it's possible and would be interested if any of you could one shot a whole gym app.

The good news

Four weeks ago I started gaining strength again after years of surgery recovery. Today I shipped a gym app that will help me track that progress — even if it took longer and looked worse than I'd hoped.

Here are the gaps I really need to plug in AI coding

  • AI tools need better integration with design systems (Shadcn, Tailwind, etc.)
  • Default styling is often terrible and inconsistent
  • No understanding of visual hierarchy or user experience principles
  • Lacks design pattern recognition and application
  • Hit or miss with large, complex requirements documents

If you have already done this, please can you share in the comments. If these are all just a me problem then I'd love to learn.

Chris Howard has to be up there with the most dedicated commentor of mine (thanks Chris) and I think he encapsulated things perfectly with this comment on this post.

None
None
This is basically the wedding cake that Chris is saying Claude Code would make for your wedding (made with Midjourney v7)

Before you go

Subscribe to my newsletter because this is what I send to my clients and executives every Sunday :) Plus it contains a weekly book club of books I read. I also link all the Medium posts from the week so it's an easy way to stay up to date.