When I was a kid growing up in Wigan, I was obsessed with taking things apart and putting them back together. Engines, clocks, anything mechanical that would sit still long enough. There was something deeply satisfying about understanding how a system worked at its most fundamental level — what connected to what, why each part existed, what happened when you changed one thing.
When I discovered front-end development in my early career, it felt exactly the same. CSS was mechanics for screens. You pulled a lever here, something moved there. You understood the rules, you could predict the outcome, you could make things behave precisely the way you intended. HTML was structure. CSS was behaviour. The relationship between them was logical, learnable and endlessly satisfying to get right.
I wasn’t working. I was playing. And I was good at it.
Front-end development changed. Gradually at first, then all at once.
Bower arrived. Then Grunt. Then Gulp. Then Webpack. Then Git workflows, CLI commands, package managers, dependency conflicts and version mismatches. Every time I sat down to write CSS, there was a forty-five minute preamble of terminal windows, error messages and Stack Overflow tabs before I’d written a single line.
The thing I loved — that direct, tactile relationship between writing code and seeing something change on screen — was buried under layers of abstraction I had no particular interest in mastering. I wasn’t playing anymore. I was researching, patching, fixing, updating, troubleshooting. The mechanics had been replaced by bureaucracy.
So I did what made sense. I retreated. I focused on UI design, Figma and WordPress builds, and quietly accepted that the front-end craft I’d loved in the early days was someone else’s territory now. Junior developers who’d grown up with this tooling, for whom the terminal was as natural as a browser inspector.
That quiet retreat lasted longer than I want to admit.
Before I found Claude Code, I did something that fundamentally changed how I thought about AI tools — I completed Anthropic’s Claude 101 course. I’d been dabbling with Claude for design research and writing, but the course gave me a proper grounding in how to actually work with it effectively. How to prompt with precision, how to frame problems so the output was genuinely useful, and crucially — how to think of Claude as a skilled collaborator rather than a slightly smarter search engine.
That mindset shift was everything. Before the course, I was using about ten percent of what the tool was capable of. After it, I had a framework for getting the most out of every interaction. It was the difference between knowing a tool exists and actually knowing how to use it.
Armed with that understanding, I started using Claude Code on a real front-end codebase — and specifically discovered the Claude Code in Action resources that showed practical, real-world development workflows rather than toy examples. Seeing Claude Code used on genuine projects, handling the kind of messy real-world problems that actual development throws at you, made me realise this wasn’t just a novelty. It was a genuinely different way of working.
What happened when I applied it felt like finding a shortcut through a wall I’d been walking around for years.
I described what I wanted. CSS that behaved in a specific way. A component that did something tricky with nested border radii. A custom JavaScript interaction I’d had in my head but never quite had the patience to build properly. Claude Code wrote it, explained it, and when something didn’t work, fixed it — handling all the tooling scaffolding, the dependency management, the CLI commands I’d grown to dread, entirely in the background.
Suddenly the wall wasn’t there anymore.
I was back in that direct relationship with the output. Describe the intention, see the result, iterate. The joy of front-end development — the bit that had always felt like play — was available again without the surrounding machinery that had made it feel like work. It wasn’t that Claude was writing the code instead of me. It was that Claude was handling the parts I’d never enjoyed so I could focus entirely on the parts I always had.
Since finding that groove again I’ve done more genuine front-end work than in the previous three years combined.
The gooey SVG filter effects on my own portfolio site — the feGaussianBlur and feColorMatrix combination that creates those organic merging shapes — came from a deep dive I’d never have gone on without the confidence that if I got lost in the implementation, I had somewhere to turn. The custom CSS architecture across the site, the JavaScript interactions, the performance optimisations — all of it built with a hands-on engagement I’d genuinely thought I’d lost.
More importantly, the work is better for it. There’s a difference between a site built entirely in a page builder and one where the designer also has genuine command of the underlying code. The decisions are more informed. The solutions are more precise. The gap between what you imagine in Figma and what ends up in the browser gets narrower when you’re not dependent on a plugin to bridge it.
I’m not making the case that AI replaces the need to understand front-end development. If anything, my experience is the opposite — the reason Claude Code is useful to me is because I understand what I’m asking for. The foundation built in the years when front-end felt like play, combined with the structured understanding I got from Claude 101, is what makes the collaboration genuinely productive rather than just generative.
What AI has done is remove the tax. The setup overhead. The tooling management. The debugging session before you’ve written anything meaningful. The parts of modern front-end development that require specialist knowledge most designers never needed — they just got in the way.
What’s left, once that tax is removed, is the part I fell in love with in the first place. The logic of systems. The directness of cause and effect. The satisfaction of understanding exactly why something works.
It feels like Lego again. And I didn’t realise how much I’d missed it.