Colophon - How it's made

The word originates from the ancient Greek word kolophṓn, meaning "summit," "peak," or "finishing touch". Historically, putting the colophon at the end of an illuminated manuscript was considered the final, crowning achievement of the scribe or printer. Wikipedia
About this site
This site was first registered in 2000, with the intention of joining the burgeoning circle of personal blogs. It has gone through various phases, from the very first completely static site to versions in ASP and PHP, before landing on WordPress, and finally moving to a static version generated by a custom-made Python script—the result of wasted hours and glasses of cold beer.
Technology
Let’s see what’s out there on the web… this software looks nice, this other one too… but where’s the fun in that? I'm going to build my own with my trusty Python. All it takes is creating a file named blog_render.pyand writing the first 100 lines of code—which eventually turned into more than 1,000.
In this adventure, I started with a simple plan, first writing down what I wanted and looking for the right libraries as I began coding:
- A simple configuration system—I chose to put everything into a single YAML file.
- Writing posts and pages in Markdown with metadata at the top (using Mistune and Frontmatter).
- A template system that is simple yet flexible (Jinja2).
- An automated system to generate photo galleries for me (Pillow).
It took nearly a month of working in my limited free time to go from the initial concept to a working version.
Later on, I added several PHP scripts and their respective JavaScript front-ends for the dynamic parts, such as the post search, the Kudos button, and a privacy-first analytics system.
Typography and styling
I primarily use two fonts, Google's Quicksand and JetBrains Mono , stripped down to the bare minimum using a Python script to keep their file sizes small, and hosted locally to avoid relying on external servers.
For the icons, I used Font Awesome . Again, to avoid relying on external servers, I downloaded the icons in SVG format and converted them into a CSS file using a Python script, convenient and easy to integrate.
Update: found some cool sun and moon icons on Remixicon .
When it came to colors, Radix colors was a huge help; just click on 'Custom palette' to create your own.
Accessibility
To check the site's accessibility, I relied on WAVE ; the issues it identified led me to modify both the interface and the color scheme. These changes made the site easier to navigate via keyboard and improved visual contrast. Excellent.
Privacy
GDPR and the other laws regulating the 'new web' make my head spin. And honestly, I have absolutely no use for your data! All I need is local storage to save your settings, and a bare minimum of anonymous analytics to get an idea of what devices (PC, phone) and where (continent, language) visitors are coming from, and to check if a bot has stopped by recently.
So, no cookies—I can do just fine without them.
Have you seen a bug around?
Despite my best efforts to keep this place tidy, a few bugs might still be hiding in the code. If you spot one, please use the contact form to let me know—I'll try to capture it as soon as possible!