← Back to all projects

Personal Website

Active
Astro Tailwind Vercel

The keystone project for my entire digital roadmap. One URL that replaces scattered social media as the single source of truth for who I am, what I'm building, and what I'm learning.

Where it stands: Done. When I look at joshbowman.dev now, the thing I set out to build exists. Every page I wanted is live. It is also never going to be finished, because the whole point is that it stays current with what I'm actually doing.

Tech stack: Astro 5, Tailwind CSS, TypeScript, deployed on Vercel. Domain: joshbowman.dev via Cloudflare.

Why I built it this way: Static site generators are perfect for content-heavy personal sites. Zero JavaScript shipped to the browser by default, markdown-native, and Claude can help me iterate on it directly. Free hosting, fast load times, and I own all the code.

What six months of running it taught me. A personal site does not go stale because the code rots. It goes stale because you stop pushing. I went 106 days between real content commits this summer while I was heads down on other things, and in May I had literally written myself a note saying "block 30 minutes every couple months for a stale-content sweep." Then I didn't, for 106 days. A note reminding you to do a thing is not a system. A scheduled job is.

The other lesson, learned the expensive way: I ended up with two checkouts of this repo on the same machine. One of them fell two commits behind and nearly took five live project pages down with it. One working copy. Always.