August 17, 2026

Building This Site

This site is built with Astro and deployed to Cloudflare Pages. It’s styled like a file explorer, which is an excuse to write a little tree UI.

Stack

Piece Choice
Framework Astro
Deployment Cloudflare Pages
Content Markdown via Astro content collections
Styling Plain CSS in a global stylesheet
Package manager Bun

Why Astro + Pages?

Astro ships static HTML by default, which is great for SEO and performance on a content-heavy personal site. Pages handles the hosting, custom domain, and global CDN without me running any servers. I only hydrate client-side JavaScript where I actually need it.

The file explorer UI

The UI is server-rendered first. Every file and folder is a real <a> tag pointing to a real route. Search engines see crawlable HTML; the file explorer is just the navigation chrome around it. If JavaScript fails, the site still works.

Content

Pages and writings live as Markdown in src/content/, defined as two Astro content collections with typed frontmatter. Routing for the static pages is handled explicitly, and the writings use a dynamic [slug] route.