How I built this site
I wanted a personal site that loads instantly, is easy to update, and doesn’t lock me into anyone’s platform. Here’s the stack I landed on.
The stack
- Astro — ships zero JavaScript by default, so pages are basically static HTML. Perfect for a content site.
- Markdown content collections — every blog post is a
.mdfile with a small schema, validated at build time. - Cloudflare Pages — free, global CDN, and it sits right next to my domain’s DNS.
Why not something heavier?
For a portfolio and blog, I don’t need a database or a server. Static files on a CDN are faster, cheaper, and far simpler to reason about. If I ever need dynamic features, Astro can add server rendering later without a rewrite.
What’s next
I’ll keep tweaking the design and adding posts. If you’re building something similar, the whole thing is a handful of files — start small and grow it.