Projects · This site
Building this site
I built this site because I needed somewhere to publish the essays and research I was already writing. I also wanted to show my work and who I am more fully than a CV or LinkedIn profile allows. Building and hosting it myself is part of how I show that work.
Design process
I went through about twenty previews before settling on this design. Each used the same content differently, and building them helped me work out what I wanted the site to be. Here are a few of those attempts.
-
Front Page
A cream broadsheet front page with serif type and my research as the day's lead story.
View live -
Vector Field
An invisible-hand design with a dark starfield and a slowly changing gradient on my name.
View live -
Working Copy
A working-paper design with red-pen notes in the margins showing the thinking.
View live -
The Record
A full newspaper-of-record layout with ruled columns and a “What's News” section down the side.
View live -
The First Site
My previous live site, preserved as it shipped, with a dark markets palette and a yield curve at the top.
View live
Open a preview for a larger image, or choose “View live” to open the design in a new tab.
Stack
PHP, no framework
I use hand-written PHP and a few shared utilities, so it's easy to follow a request through the site.
MariaDB
MariaDB stores posts and research codebases as markdown source with a rendered cache. Each has a slug and a draft/published state controlling access.
nginx + Docker
nginx serves and routes requests under strict security-header and CSP rules. Docker Compose connects the services the same way in development and production.
A custom renderer
The markdown pipeline supports live chart embeds and LaTeX, so I can publish a research paper as a full web page instead of a PDF.
I built the platform myself because I didn't want a CMS. Adding reproducible charts, proper math support, and citable permalinks to a plugin stack is difficult.
What I learned
The page needed less than I first thought. Most of the twenty previews failed because they added too much color and motion. The design I shipped works because it doesn't get in the reader's way. Running the stack myself means TLS, backups, and security headers are now my responsibility. That has a real cost, but I think it's worth it because I can adapt the platform to my research.
The underlying platform is documented in research infrastructure.