matt-taylor.tech
← Back to projects

Personal · Since 2025

matt-taylor.tech

Astro 5 Tailwind v4 TypeScript Pagefind Cloudflare Pages

The site you're reading. Built as both a portfolio surface and a personal sandbox for Astro, Tailwind v4, and content-as-data patterns. Hosted on Cloudflare Pages, deployed from GitHub on every push to main.

Architecture

  • Framework: Astro 5 with islands disabled by default (static-first)
  • Styling: Tailwind v4 with a small custom palette (ink + accent scales) and dark mode via class toggling
  • Content model: Typed TypeScript data files (projects.ts, skills.ts, timeline.ts, maker.ts) instead of a CMS. Pages map over the data; the type system catches drift.
  • Search: Pagefind indexes the static build at deploy time; no runtime search service required
  • Layouts: Shared BaseLayout + DetailLayout + JobLayout components encapsulate the cross-page chrome, eyebrow logic, and prose styling
  • Deploy: Cloudflare Pages, GitHub-connected, preview environments per PR

Why this is here

Building the site instead of buying one keeps the front-end toolchain (Astro, Tailwind, TypeScript, Pagefind, Cloudflare Pages) in active use. The content-as-typed-data approach scales the way I want it to: adding a project or a skill is a typed object, not a CMS form, and refactors propagate through the type system rather than through manual content edits.