About
A project journal. I use it to document personal projects I build in my spare time and share what I've learned along the way. The audience is mostly future me, a handful of friends, and whoever else happens to read it.
How it's built
This site was built with Claude Code as a development partner. It's an Astro static site with zero client-side JavaScript, one hand-written CSS file, and no cookies. The code lives on GitHub: pkeppeler/personal-site.
Stack:
- Astro (static site generator)
- pnpm (package manager with strict security defaults)
- Shiki (build-time syntax highlighting)
- Cloudflare Pages (hosting)
Cloudflare's server-side Web Analytics is enabled. It counts aggregate page views from the CDN request logs Cloudflare already keeps to serve the site. No cookies. No client-side JavaScript. No personal data collection.
AI workflow
I use Claude Code as a development partner for the projects I write about here, and I use Claude to help draft the posts as well. Specifically:
- The code, configuration, and design of this site were written collaboratively with Claude. I reviewed every file before merging.
- Most blog posts start as a draft from Claude based on my notes and lived experience of the project. I then edit them for voice and accuracy, and add personal details Claude couldn't know.
- Future posts may vary in how collaborative they are. If a post is meaningfully AI-drafted, assume that's the default unless I say otherwise.
AI leverage is the reason this blog exists. The projects I write about are projects I built with Claude, and the posts themselves follow the same workflow. Without it, both would be things I plan to do eventually instead of things that actually exist.