John Fite

How this site is built

A deliberately small static site. The public work stays portable and easy to inspect, and it stays separate from the private drafts and sources that produce it.

The system

Static by design
Cloudflare Workers Static Assets serves the contents of artifacts/ directly. There’s no Worker script or API handler for the public site. The only build step is a small feed and sitemap generator (npm run feeds) that runs before publishing.
One visual system
The home and section pages share site.css and theme.js, with self-hosted Fraunces for headings and Source Serif 4 for text. Paper is chart-paper white with indigo ink; Night is a navy ground with a lamp-amber accent. The first theme you see follows your device’s preference, and a choice you make is saved in your browser. Each essay keeps its own typography and shares essay-chrome.css for navigation.
Every piece in its own folder
Each public artifact keeps its own index.html and local assets together in one folder. That keeps it portable and keeps its public address stable.
Cloudflare is the edge
Only artifacts/ is deployed. Redirects, security headers, caching rules and the custom 404 page live alongside that public surface.
Public output, private sources
Project files, drafts and working notes stay in their own repositories and notebooks until they’re intentionally published.
No framework
This is a static catalog, so plain HTML and CSS keep the publishing path simple and avoid complexity the site doesn’t need. It grows one self-contained piece at a time.
AI-assisted, human-directed
AI helped build it; I decided what it should be. How I work with AI.