// colophon

Colophon

How this site is made. The boring parts, the interesting parts, and the things I'd do differently if I started over.

the stack

php
No framework. No Composer packages for routing. Just a tiny router I wrote myself and a bunch of include statements. It works. Mostly.
mysql
Stores the blog posts, categories, and the visitor counter. Nothing fancy. Two or three tables.
apache
Runs on a small VPS. I pay for it monthly. It's not the fastest server but it works.
css
Handwritten. One file. I tried splitting it into four at one point, then got tired of it and merged it back.
javascript
As little as possible. The theme toggle, the facts shuffler, and a couple of small things. No React, no build step.
the cat
A small cat follows your mouse around the page. This is oneko.js — a JavaScript port of the original Neko software from the 90s. It's been floating around for years and it makes the site feel less dead.
fonts
IBM Plex Mono and IBM Plex Sans. Downloaded once from IBM's GitHub and hosted locally. I got tired of Google Fonts tracking everyone.

things I got wrong

This is the part nobody writes. Here's what I'd change if I were doing it again:

  • Started with pixel fonts. Looked cool for about a week, then I couldn't read my own site. Switched to IBM Plex. Better.
  • Spent three days building a mobile drawer menu nobody used. Deleted it. The nav just wraps now.
  • Had a custom cursor for a while. A little image file that followed the mouse. Deleted it too. Annoying.
  • Tried to build my own comment system. Never finished it. Probably never will.
  • The cat. I added it for fun, and now I can't imagine the site without it. It's the only animation on the site that serves no purpose except making me smile.

fonts, colors, and why

Monospace for labels and code, sans for prose. I wanted something that felt technical without being a terminal theme. IBM Plex was the middle ground.

Colors are warm. Cream instead of white. Brown instead of gray. Accent is a brick red. I chose it because every developer site on the internet is blue. Mine is not.

Borders are dashed, not solid. No real reason. I just liked it.

what's not here

  • No analytics. Not even a self-hosted one. I don't need to know you're here.
  • No cookies. No cookie banner. Nothing to consent to.
  • No newsletter. I'd never send it.
  • No AI-generated text. I wrote all of this. See /ai.
  • No framework. No build step. No npm install.

That's it. No philosophy. No big conclusion. Just a list of things I used and a few mistakes I made along the way.

Part of /slash. If something here is wrong, it's because I changed the site and forgot to update this page.