back

under the hood · 2026-07-30 · 2 min

Under the Hood: This Site

This site is generated from markdown by the same system it describes. The build script, the content rules, and why there's no CMS.

Terminal output of the site build and its passing test gate

You're reading the artifact, so this one can be concrete. This site replaced my Squarespace and was built in a day of iteration between me and my OS. Here's the actual loop.

The direction

I started with a feeling, not a spec: my old portfolio said designer; nothing about it said operator. The direction we landed on — "editorial terminal" — makes the OS itself the visual language: a manifest block beside the hero, run-log entries as content, a live status strip. My brand tokens, but the system's voice.

A directory listing of markdown post files with dated filenames
There is no CMS. Every post is one markdown file with frontmatter, and the build renders whatever is approved.

Iterations, honestly listed

  • One page → pages. My own review caught it: reading felt like infinite scroll. We broke posts into real pages with category shelves, back arrows, and prev/next — and gave every page canonical URLs, structured data, and a sitemap, because a blog that replaces a website has to earn search traffic.
A redirects file mapping old work URLs to new blog post URLs
Every old Squarespace URL still resolves. The case studies moved; the links people already had did not break.
  • The fonts escaped the site. I liked the type so much I made it official everywhere — the OS swapped the tokens across 27 internal dashboards the same afternoon.
  • Accessibility beat the brand color. When I said dark mode had to pass ADA basics, we didn't eyeball it — we computed contrast ratios. My orange failed on cream at small sizes: 3.3:1 against a 4.5:1 requirement. The fix wasn't abandoning the orange; it was a second token — a deeper orange for small text, the pure brand for bars and big display. Dark mode already passed. Now both do, by arithmetic.
  • Drafts can't ship. The build excludes any post I haven't approved and prints what it skipped. The governance rule isn't in a style guide; it's in the compiler.
Python function names from the site test suite covering drafts, metadata, and security headers
The gate that enforces it. Drafts, metadata, og images, sitemap parity, security headers, a secrets sweep — any failure stops the ship.

The part clients should care about

At no point did I type "make me a website" and accept what came back. Every loop was: I name a constraint or a discomfort, the system proposes and measures, I judge. The measuring is what makes AI collaboration professional instead of lucky — contrast ratios instead of "looks fine," verified claims instead of confident copy, a draft gate instead of good intentions.

That's the service, whether the deliverable is a brand system or a production pipeline: taste plus governance, at AI speed.

share