Personal

zechman.dev v2

This site. Built on Astro with a local markdown content layer, designed against my own style system — the same one that produces my resume and decks.

Role
Design & Engineering
Year
2026
Type
Personal
Stack
astro, typescript, react

The brief

The previous portfolio was a Gatsby site with content spread across Ghost, Notion and Airtable. Three external services had to be up for the site to build, and none of them were the thing I actually wanted to work on.

v2 had one rule: the site should be a design system exercise, not a CMS integration exercise.

Approach

Static by default

Astro with output: "static". Every route is a real URL and a real file; the only JavaScript that ships is the handful of islands that genuinely need it — the theme toggler, the project filters, the scroll-spy rail.

Content in the repo

Content moved out of Ghost and Notion into local markdown, validated by Zod schemas at build time. A malformed project entry fails the build rather than rendering an empty card.

One style system

The token set here is the same one that produces my resume and decks, so the whole set of artifacts stays in step without anyone reconciling them by hand.

Results

Builds are hermetic, content is versioned alongside the code it renders, and the site has no runtime dependency on a service I don’t control.

Visit project