Personal · Since 2025
matt-taylor.tech
Astro 5 Tailwind v4 TypeScript Pagefind Cloudflare Pages
Skills exercised
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+JobLayoutcomponents 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.