I’ve built websites on WordPress for my entire career. It’s been good to me. But every so often I like to give the new thing a red hot crack and see how it stacks up, and this time the new thing was building a whole site with an AI coding tool and no real coding of my own.
This is that site. Here’s how I did it, start to finish, including the actual prompts I used so you can copy the approach.
The stack, and why
Before any building, I picked the tools:
- Claude Code as the builder. It’s an AI coding agent that lives in your terminal. You describe what you want in plain English, it writes and edits the actual files.
- Astro as the framework. If you’re building a mostly-static personal site with a blog, this is the pick. It ships almost no JavaScript, so the site is fast out of the box, which matters to me given the day job. Blog posts are just markdown files in a folder, so there’s no CMS to pay for or maintain.
- Cloudflare Pages for hosting. Genuinely free, unlimited bandwidth, and it auto-deploys every time I push code. No FTP, no cPanel, none of the old dance.
- VS Code as the place it all happens, because I already had it.
Total ongoing cost: nothing. The domain I already owned.
Getting Claude Code running
Installing it took about ten minutes. On Mac or Linux it’s a one-line install; on Windows you can grab it through winget. Then you open your project folder in VS Code, run claude in the integrated terminal, and log in. The VS Code extension hooks in automatically so you get to see the changes as diffs right in the editor.
One thing that saved my sanity early: Claude Code has no memory between sessions. Close the terminal and it forgets everything about your project. The fix is a file called CLAUDE.md in your project root that it reads at the start of every session. Think of it like a brief you’d hand a new contractor: here’s the project, here’s how we do things, here’s what to never do.
I set mine up early by running the built-in /init command, which scans the project and drafts one for you, then I added my own rules:
Add a rules section to CLAUDE.md: vanilla CSS only, no frameworks, no heavy JS libraries, Australian English spelling, mobile-first design, and always run npm run build before finishing a task.
From then on it stopped reinventing decisions every session.
Building the thing
The first prompt scaffolded the whole project:
Create a personal website using Astro. Pages: homepage, about, and a blog powered by markdown files using Astro content collections. Minimal dependencies, no heavy JS frameworks. Clean, fast, mobile-first design. Set up the project structure and a couple of placeholder blog posts, then run the dev server so I can preview it.
A minute later I had a working site on localhost. From there the whole thing was a conversation. I’d describe a change, it’d make it, I’d look, I’d ask for a tweak. Some of the actual requests, more or less as I typed them:
- “Build the homepage hero. Big confident headline, a short intro, three bullets about what I do, and a call to action button.”
- “The bullets look templated. Give me proper icons that match each line.”
- “Make the header sticky and add a subtle shadow when you scroll.”
- “This section looks a bit templated. Break up the wall of text.”
That last one came up a lot, and it’s worth flagging: AI-built sites drift toward a samey, tidy, generated look if you let them. The fix is to keep pushing for one strong idea per section and a bit of deliberate imperfection. The moment I asked for a hand-drawn style arrow and a photo that breaks the grid, the whole page started feeling human instead of machine.
I also leaned on the design side. I mocked up the look I wanted first, then screenshotted it and told Claude Code to match the reference. It’s surprisingly good at building from an image.
The bit that made it feel real
Everything above is still just files on my laptop. The magic is the deploy loop, and it runs through GitHub.
Cloudflare doesn’t watch your computer, it watches a GitHub repo. So the flow is: push your code to GitHub, and Cloudflare notices, rebuilds, and publishes the live site about a minute later. The push is the deploy.
First I got it onto GitHub. The easiest path is the GitHub CLI. You install it, run gh auth login once (choose HTTPS when it asks for a protocol, it’s the frictionless option), and then you can just tell Claude Code:
Initialise a git repo here, create a .gitignore for an Astro project, commit everything, then use the gh CLI to create a new private GitHub repo and push it.
It handled the lot. Then I connected Cloudflare Pages to that repo. Heads up: Cloudflare has recently merged Pages into its Workers dashboard, and the default flow tries to treat your site like a serverless app, which is wrong for a static site. If you hit a screen asking for a “deploy command” or an “API token”, you’re in the wrong lane. Look for the small “Looking to deploy Pages? Get started” link and use that instead. The correct flow just asks for:
- Framework preset: Astro
- Build command:
npm run build - Output directory:
dist
Save and deploy, wait ninety seconds, and the site was live on a .pages.dev URL. (One gotcha worth dodging up front: set an environment variable NODE_VERSION to 20, or the build can fail on an old Node version.)
The daily workflow now
This is the payoff, and it’s genuinely nicer than the WordPress way. When I want to change something:
git add .
git commit -m "what I changed"
git push
A minute later the live site updates itself. Or I skip typing entirely and just tell Claude Code “commit these changes and push them” and it does all three.
Adding a blog post (like this one) is even simpler. There’s no admin panel to log into, because a post is just a markdown file with a small header block at the top. I can write one in VS Code, or even straight on github.com from my phone, and pushing it publishes it.
The verdict
I went in expecting a novelty and came out genuinely impressed. It’s faster than Webflow was, more flexible than I expected without a CMS, and it costs me nothing to run. There are rough edges, the AI needs a firm hand to not produce something generic, and you do have to understand a little about what’s happening under the hood. But for a personal site you want to tinker with, this is a brilliant way to build.
Would I move all my clients to this tomorrow? No. WordPress still wins for a lot of them. But the question I actually care about, whether AI has changed what one person can ship in a weekend, the answer is clearly yes. And I’d rather learn that with my hands than read about it.
More experiments to come. This site is the sandbox.
Want a second opinion?
Send me what's going on and I'll tell you what's worth worrying about.