The Website

Why I Made It

I've been meaning to get something put online for a while now. I find it useful when other people share their configurations and documentation, so I wanted to do the same. It'll also encourage me to document more things as I work through them. Plus, it's just another fun project to work on. I've always liked the idea of serving things from my home to the internet. I think it's good to put things up on an independent website rather than adding to the dominance of a few social media platforms.

How it's made

I wanted the site to be simple and lightweight. I originally looked at static site generators like Hugo and Pelican, but decided to write the site myself in plain HTML and CSS without the use of any libraries such as Bootstrap. I think it will be easier to manage and customise as I'm directly writing what gets served to users rather than relying on a middle layer or third party libraries.

The ideal would be to have zero JavaScript, but I ended up with two exceptions: highlight.js for syntax highlighting in code blocks, and a small script for toggling between light and dark themes. I think too many websites use excessive amounts of JavaScript for simple features, and to be honest - I just don't like writing JavaScript.

Unfortunately I can't claim that this website is fully independent of large tech companies as it is proxied through Cloudflare. They provide too many useful services for free that I decided to go with them. I will keep an eye out for alternatives and may possibly switch at some point in the future.

Design

The colour scheme is Gruvbox, which I enjoy using in my terminal and editor. I think it works well for both dark and light modes and isn't too harsh on the eyes. The overall design is quite minimal, with a focus on readability and simplicity.

For typography, the site uses Fira Sans for body text and Fira Code for monospaced code blocks.

Analytics

I self-host Umami for the site's analytics. It doesn't use cookies and doesn't collect personally identifiable information.

I only keep analytics data for 90 days, and it isn't used for advertising purposes or shared with any third parties. I just use it to get a general idea of how many people are visiting the site and which pages are popular.

LLMs

I'm neither an LLM evangelist nor a hater. I've read many posts of people trying to stop LLMs from scraping their sites, but as more people use LLMs for browsing and information retrieval I want this site to integrate into that way of working. My goal is just to get information out there whether that is by direct link, search engine, or LLM - either by navigating here through a browser or this material being included in an LLMs training data.

In an effort to support LLMs, I have included an llms.txt and am using the nginx - Markdown for Agents module that is inspired by Cloudflare's recent Markdown for Agents. This serves markdown versions of pages to agents that use the Accept: text/markdown header. This allows LLMs to parse the contents of the site while using fewer tokens than would be required to parse the HTML.

I've also included the Content-Signal tag in the site's robots.txt, as defined by Cloudflare - Content Signals Policy, to indicate that the content is usable by LLMs.

Whether either of these measures will become standards supported by all LLMs remains to be seen, but I will modify these aspects of the site as things evolve in the space.

Edits

2026-04-26: Umami has been removed from the site.