← blog

// All of the above · 15 March 2026

I Built This Entire Website With AI In One Evening

I Built This Entire Website With AI In One Evening

I need to tell you about last night.

I sat down at my desk, opened a terminal, and had a complete personal website — photography portfolio, video page with an autoplay triptych of my reels, a working blog system, responsive design, custom typography, the lot — by the time I went to bed. Not a template. Not a drag-and-drop builder. A proper, hand-coded Next.js site, built exactly the way I'd have specified it if I knew how to code it myself.

I used Claude Code. And I genuinely haven't stopped thinking about it since.

A bit of context — I'm a millennial who grew up with all of this

I was there for the beginning of the web. I'm talking MS FrontPage. GeoCities, with the under-construction GIFs and the guestbooks. I remember hand-editing HTML in Notepad because that was the only way to get things exactly right. The excitement of uploading files via FTP and then refreshing the browser to see if the change had worked.

I built my first website when I was about 14. It was terrible. It was wonderful.

Then came WordPress. Then page builders. Then Squarespace and Wix making everything easier but somehow also more limiting. Every few years, a new "anyone can build a website now" moment — and every time, the ceiling was a bit higher but the walls were a bit closer.

I've always dabbled. But I've never been a developer. I can read code. I can hack things together. I know enough to be dangerous and not enough to be fast.

Until last night.

What I actually wanted to build

I've had various sites over the years — mikejhall.co.uk for my photography, separate things for professional work, nothing that tied it all together. I wanted one place that represented everything: the photography, the video work, the music, the marketing career, and eventually a proper blog.

The brief in my head was: dark, editorial, typographic. Less "portfolio template," more "this person has taste." Something that felt like it belonged next to the sites I've always admired — the ones where you can tell a designer has lived in it.

I had no idea how to build that.

Claude Code v2.0.0

The prompts. The actual prompts.

Here's what blows my mind — I just talked to it. Like explaining a project to a colleague. The first prompt was something like:

"I want to build a personal hub. Dark background, editorial feel. Photography, video, music, professional, blog. Monospace font, amber accent colour."

And it built the skeleton. Not perfectly — there were legibility issues early on, text too dark against the dark background, things that needed iterating. But the foundation was there in minutes.

Then it was just... conversation.

"The nav logo feels like it's floating. Can we make it flush left, like this reference site?" Done.

"I've got three vertical video files in the public folder. Can we use them creatively?" It thought about the problem — vertical videos on a landscape site — and came back with a triptych concept. Three portrait-ratio panels side by side, full bleed, dimming on hover. I'd never have thought of that.

"The third video doesn't play." It diagnosed a QuickTime container issue inside an MP4 file, explained exactly why Chrome was rejecting it, and fixed the code.

"The portfolio page feels bare now." It understood the whole architecture we'd built, remembered every decision we'd made, and suggested collapsing two pages into one. Which was exactly right.

Every conversation built on the last one. It never lost the thread.

The things that surprised me most

It pushes back. When I suggested something that wouldn't work well — like keeping huge image grids on a single photography page — it didn't just do it. It explained why the collections architecture would be better, laid out the options, and let me decide.

It has taste. This is the one I can't quite explain. The amber accent on // comments. The gap-px grid trick that creates the hairline borders. The way the video labels say // reel 01 in the bottom corner. I didn't specify any of that. It just... made choices that felt right.

The file sizes matter. At one point I uploaded three video files totalling over 100MB. It immediately flagged the problem, explained the codec issue, told me what to do about it, and implemented lazy loading with Intersection Observer so they'd only download when scrolled into view. That's the kind of thing a senior developer thinks about. I would not have thought about it.

It catches its own mistakes. The Anglesey photo collection said 19 images. The actual page had 20. It noticed, corrected it, moved on.

What we actually built, step by step

In roughly one evening:

  • A full Next.js 15 site with TypeScript and Tailwind CSS
  • Custom typography pairing (Space Grotesk + JetBrains Mono)
  • A hero page with a night street photography background
  • An About section with split layout, bio copy, and press links
  • A Photography section with a collections architecture — five galleries (Brighton Day, Brighton Night, Anglesey, Paris, London) with 110+ images, all downloaded from my old site before I take it down
  • A lightbox component with keyboard navigation built from scratch
  • A Video page with a full-bleed autoplay triptych and lazy loading
  • A blog system using MDX files — write a post, save it, it appears. No CMS, no logins, no deploy button. Just a file.
  • A working blog index with cover images, categories, and post cards
  • Consistent legibility rules enforced across the whole site

You're reading the blog right now. That's the blog.

I'm late to the party. But maybe not.

Here's something I've thought about a lot. I've always felt like I arrive slightly after everyone else.

The web? I was there early, but not early early. Ecommerce? I understood it before most people around me, but always felt like someone else had already figured it out. Crypto? I got interested at exactly the wrong time, like everyone does. And now AI.

There's a version of this story where I'm late again. Where the real builders, the people who matter, have been doing this for years and I'm just catching up.

But I don't think that's quite right this time. I think there's a window right now — probably a short one — where the tools have finally caught up with what non-developers have always wanted to do. Where you can have the idea, describe the thing, and have it exist. Where the gap between "I can picture this" and "this exists" has almost closed.

I'm early enough that this still feels genuinely astonishing. Late enough that the thing actually works.

That window won't stay open forever. In a year or two this will just be how websites get made, and the amazement will be gone. So I'm writing this down now, while it still feels like something.

The question I keep coming back to

I'm in marketing. I think about AI and its implications constantly — for content, for creativity, for jobs, for what "skill" means. And I'll be honest: I've been sceptical about a lot of the hype.

But this felt different. Not because it replaced a developer — I still had to know what I wanted. The taste, the brief, the decisions, the "no, make it humbler," the "actually, I want the portfolio on the same page" — all of that was me. Claude was fast, meticulous, and technically capable in a way I never will be.

It felt like having a genuinely excellent colleague who happens to know every framework, every browser quirk, every performance consideration — and who never gets tired of iterating.

I grew up watching the web get built. MS FrontPage. GeoCities. Hand-written HTML. WordPress themes at 2am.

Last night was the first time I thought: oh. This is actually different.


The site you're reading this on is the result. I hope you like it.

If you're curious about any part of how it was built — the architecture, the blog system, the video triptych, anything — I'm happy to go into more detail. Drop me a message or watch for the YouTube video, because this is absolutely becoming one.