Staticcc
When you have a website, you don't want to be writing HTML by hand. As such, there are many many programs for taking Markdown or some similar format and converting it into HTML for publishing to the web, and when I came in need of one I decided to write my own (this is a running theme for me). Staticcc is not that. The first site generator I wrote was called "drneo", which was a bad pun about "MD" being short for both Markdown and Medical Doctor, and the fact that I was publishing to Neocities at the time. Very soon after I finished writing drneo, I moved to hosting my own site on a VPS, so I hacked in the functionality for drneo to output a build of the site to a local directory rather than directly publishing to Neocities. This feature sucked, so it didn't take me very long to reinvent the wheel for a second time and write staticcc. It is currently used for both my websites - this one and my old one.
Staticcc takes a tree of files (including Markdown files) and some config information (such as templates and text replacements) and produces a static website that can be deployed to a web server using (for example) rsync. It has some design flaws that are quite obvious in retrospect, but in my defense I was like 17 at the time and was still pretty new to programming, in the grand scheme of things. My design requirements were basically to let me write in markdown, allow multiple templates, let me have the same boilerplate content on each page (headers/footers) without having to manually include it all in every file, and support RSS feed generation. It delivers on those, but since then I've realised a few more things would be nice. For one I'd like to be able to use a language like lisp to generate content at build time, rather than just having simple text replacements. Also just having a generally less hacky system of per-page metadata would be nice. I've been poking around trying to design a new site generator for a while, and in fact I was considering writing a new one for this site, but I decided against it in the name of deadlines.