Using makesite.py

2021-01-12

I think every software developer, or even everyone entirely, should have a personal website. They are great opportunities to learn new technologies, get your writing online to where people can see it, and give back to the online community no doubt you rely on.

I've had a personal website for a few years now and I've been using a static site that's been manually maintained and curated, which hasn't been ideal as I've had to spend an equal amount of time in boring upkeep as I did actually producing content. So, I'm rather pleased to have recently found makesite.py - an elegant, lightweight, and friendly little tool to generate static websites.

The primary design philoshopy behind makesite.py is its simplicity. The entire engine behind it is a single 250 line Python file which is easy for the even beginner programmers to understand. This engine uses templates you've made and combines them dynamically with content and data you've written, compiling it into a static website ready to be hosted. Running the code takes less than a second so the results are immediate, and so it fits nicely into my current workflow using VS Code.

Before now, I was manually maintaining the website's headers, page meta tags, RSS feed, etc. Now, I barely even have to think about that stuff and I'm more freed to write content without managing quite so much of the chores.

There are of course other static site generators out there: Jekyll, Pelican, and Hugo to name a few. But I think most struggle to come close to the simplicity of makesite.py. I recommend makesite.py to anyone who's looking for a static site generator that is as simple as possible or anyone willing to dig a little into the code to really get a bespoke solution.