Projects · This site
Building this site
I built this site for two reasons. I wanted a place to publish the essays and research I was already writing, and I wanted a better way to show my work and who I am than a CV or a LinkedIn profile. Building and hosting it myself is part of that.
Design process
The current design wasn't the first idea. It came out of about twenty previews, each taking the same content in a different direction, and building them was how I worked out what I wanted the site to be. A few of them:
-
Front Page
A broadsheet front page in cream and serif, the research run as the day's lead story.
View live -
Vector Field
The invisible hand, rendered: a dark starfield with the name set in a slow gradient.
View live -
Working Copy
A working paper with the margins left in, red-pen notes where the thinking happens.
View live -
The Record
A full newspaper of record: ruled columns and a "What's News" rail down the side.
View live -
The First Site
The previous live site, sealed as it shipped, under a dark markets palette and a yield-curve hero.
View live
Previews open as enlarged images; “View live” opens the design in a new tab.
Stack
PHP, no framework
Hand-written PHP with a small set of shared utilities, so the whole request path stays easy to follow.
MariaDB
Posts and research codebases live in MariaDB as markdown source plus a rendered cache, addressed by slug and gated by a draft/published state.
nginx + Docker
nginx serves and routes with a strict security-header and CSP policy; Docker Compose ties the services together identically in dev and production.
A custom renderer
A markdown pipeline that also handles live chart embeds and LaTeX, so a research paper can be published as a proper web page instead of a PDF.
I didn't want a CMS. Reproducible charts, real math, and citable permalinks are hard to bolt onto a plugin stack, so I built the platform myself.
What I learned
Mostly that less is more. Most of the twenty previews failed because they added too much color and motion, and the one that shipped works because it stays out of the reader's way. Owning the stack has a real cost, since TLS, backups, and security headers are now my problem, but for a platform I can bend to the research it's worth it.
The platform underneath is documented in research infrastructure.