Skip to main content
Screenshot of gmatt.dev homepage

gmatt.dev — Personal Website

↗ View Live

My personal website and blog, built with Astro 5, Tailwind CSS v4, and deployed to Cloudflare Pages as a zero-JS static site.

Overview

This is the very site you’re reading — a personal website and blog built with modern web tooling, with an emphasis on performance and simplicity.

Stack

  • Astro 5 — static site generation with content collections
  • Tailwind CSS v4 — utility-first styling with the new Vite plugin
  • Cloudflare Pages — edge CDN hosting, free tier, automatic deployments from GitHub
  • pnpm — fast, disk-efficient package management

Key design decisions

Zero client-side JavaScript by default. Astro ships only HTML and CSS unless an interactive component explicitly opts in. The result is a perfect Lighthouse performance score.

Content Collections as schema layer. All content types are defined with Zod schemas so TypeScript types are always in sync with the frontmatter structure.

Media URL abstraction. All image references go through resolveMediaUrl() — making it trivial to migrate from local /images/ to a CDN origin (Cloudflare R2) in a later phase without touching any page or component code.

← Back to Projects