2 February 2026
Building This Site From Scratch, By Hand
I work with data and automation professionally, but I'd never actually written HTML, CSS, or JavaScript by hand before this site. It would have been faster to reach for a static site generator or a template engine — but the point of this project was to actually learn the fundamentals, not to hide them behind someone else's abstraction.
So every page on this site is a real, complete HTML file. There's
no Markdown getting converted, no templating language, no
framework. The only shortcut I allowed myself is a single small
Python script, build.py, that does two things:
-
Swaps a couple of placeholder comments —
<!-- NAV -->and<!-- FOOTER -->— for the shared navigation and footer markup, so I'm not hand-copying the same menu into every single page. - Reads a small metadata comment at the top of each post file (title and date) and automatically rebuilds this Writing page's post list, sorted newest first.
That's it. No pip installs, no build server, no CI — I just run
python3 build.py locally, check the result, and push.
It's a small enough mechanism that I can read the whole script in
a couple of minutes and know exactly what it did to my HTML.
What's next
Now that the mechanics are in place, most of the actual work is just writing pages — which, it turns out, is a genuinely nice way to actually learn CSS layout instead of copy-pasting a component library.