How I Built This Site with Claude Code
This whole site — resume, blog engine, admin, and a live homelab status page — was built with an AI agent in the loop. Here's what that actually looked like.
I talk a lot about treating AI as a real engineering tool rather than a feature you bolt onto a product. This site is my proof of that: I built it end to end with Claude Code driving the terminal, and I want to be honest about what that looked like — the good parts and the boring parts.
What I actually built
- A Next.js (App Router) + TypeScript site with a Tailwind design system
- A PostgreSQL + Prisma content engine with a custom admin and WYSIWYG editor
- Auth.js for the protected dashboard
- A live homelab status page wired to my Proxmox server and Blackbox exporter
- Vitest tests, a GitHub Actions CI pipeline, and Vercel deploys
AI as a pair, not an autopilot
The useful mental model wasn't "generate an app." It was a tight loop: I set direction and constraints, the agent scaffolded and wired things up, and I reviewed every diff, ran the tests, and pushed back when something was off. The parts that went fastest were the ones I'd normally find tedious — boilerplate, config, wiring a WYSIWYG editor, writing a dependency-free status collector.
Where the human still matters
Plenty. Deciding to pin Prisma to a stable major instead of chasing a brand-new release. Catching a layout shift from a typing animation. Noticing that a build kept failing because my serverless database was auto-suspending, and hardening the prerender queries with a retry-and-fallback. None of that is "prompt magic" — it's engineering judgment, and the AI is only as good as the person reviewing it.
The takeaway
Used well, an AI agent compresses the distance between an idea and a working, tested, deployed feature. It didn't replace the thinking — it removed the friction around it. That's the version of "AI for engineering" I care about.