N.K.

← Projects

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.

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.