Moving to Makesite
Why?
My first introduction to programming was entering <html>
on the now long-defunct site Angelfire. My first job involved maintaining a website, and my first gig as a Developer Advocate was two years spent in Firebase, ableit as the Unity and C++ expert. Which is a long way of saying, I don't like (and am mildly embarassed that) my web presence is a Blogger site and a pile of half-maintained static sites.
So I set out to rebuilt my blog on something more under my control. My main goal:
I want a lightweight customizable static site that will last years without maintenance and I can fully understand if I go months or years between posts.I don't want a dynamic content management system (or "CMS") especially after my old Wordpress site was compromised. I want to be able to totally forget about the site for months (or even years) and have it be fully serviceable -- this means no messing with node versions or debugging dependencies that need updates. The pages it generates I also want to be lightweight: I should be able to open them in a text based browser if I want and the only necessary JavaScript should be silly jaunts into web-based gamedev rather than piles of analytics or dynamic content generation. Finally, I am not and never plan to be a professional web dev -- I want to do website stuff then run back to my regular gamedev shenanigans.
After poking at Jekyll (I even started using it for another site), Hugo, and Bridgetown: I decided that all of these were way more complicated than I wanted. I couldn't even find a simple way to change my footer in Hugo.
So 30 seconds before decided "I should build my own CMS", I found Makesite. It's less a CMS and more a starting point for rolling your own. It seemed to check every box I wanted, it's basically one python script with the only dependency being a markdown parser.
Why do I love it?
When my next fallback was writing my own CMS, it was nice to find a starter project that is roughly where I would've gone. The directory structure is also simple enough that I can eventually rip out all the existing code and replace it with my own if it ever became an issue.
- I can edit my posts in plain HTML
- but it does support Markdown for pulling in my old posts
- it's entirely contained in one python script
- which I've already been teaking
- modifying the default templates are self explanatory
- it's already setup to serve content with a single
make serve
- having a
make
command makes it easy to seutp with github actions - the only dependency is commonmark
- and it's optional
Where there's room for improvement
Makesite makes it blatantly obviousl that it's functioning exactly as expected. So this is less a set of feature requests and more a TODO list for my future self.
- completely omits image or asset management
- it doesn't use make to incrementally build
- but I have some time before build time even approached the "Play" button in Unity
- there's no easy way to link to content in the site
- if I didn't deploy this as my "default" GitHub page, nothing would work
What's interesting about my setup?
- I have GitHub Action setup to auto-deploy the static site on commit
- I automatically moved my old Blogger site with a tiny script
Should I do the same?
It's still easiest to use almost any web service to build your site, including Wordpress or Blogger. And for self hosting, almost every other Jamstack generator will be more featureful than what I'm doing now. But if you want something that works, is under your control, and requires a low cognitive load overall -- Makesite gets my endorsement.