I’ve been working on and off on Programmer’s Notepad for over 15 years, version 1 written in Delphi and version 2 a complete rewrite to teach myself C++. While I was a student it was developed whenever I had free time (which I had lots of). Days, evenings, nights, weekends, there was plenty of work put in. Once I started working this reduced to evenings and weekends, but still a lot of them – particularly when I was travelling with work. I was lucky to have a job with almost no commute, and an understanding girlfriend (now wife). Now I work at the end of a 1 hour commute, and I also have two children, and I find almost no time left for hobby coding. I was slightly scared to note that on the two year anniversary of my new job, I’d released nothing and written barely anything for the last two years.
However, maintaining Programmer’s Notepad still managed to consume a number of evenings/spare days during those two years – just usually not on adding features or fixing bugs. For years I’ve insisted on running my own server, maintaining a Linux VPS in order to serve whatever hosting needs I have at the time. My Debian (some time gentoo) VPS has been mail host, web server for numerous WordPress/Wiki/bbPress/… sites, useful ssh endpoint and more, but hosting pnotepad.org has increasingly become a burden. I no longer have the time to spend hours dealing with:
- Debian security updates
- Difficult distro upgrades
- Security patching four or five different web apps
- Working out which app is responsible for swallowing all the memory on the server every other day due to a horrible authentication implementation (I won’t bore you with the details here)
- Dealing with difficult version upgrades requiring template changes or complete site overhauls
I realised that something had to change, in order that when I had spare time I could use it to improve my software rather than just running to stand still. I decided I wanted to move as much of my site infrastructure as possible away from self-hosted php apps, possibly away from my VPS entirely (which could also save me money).
Enter Jekyll and GitHub. I’m gradually migrating all my site content to static HTML, authored in markdown, presented using Jekyll, stored and version controlled on GitHub. The first thing I moved was Programmer’s Notepad’s documentation. Previously stored using Dokuwiki, I had already had to completely lock down contributions due to constant spam attacks, and recently keeping Dokuwiki working well had been taking time. Now moved to Jekyll, the mostly-static content serves quickly and pain-free. Even better, the content is all on github so users can still easily contribute documentation. It’s perhaps not as simple as using a wiki, but the end result is sustainable.
Next up is the main Programmer’s Notepad site, also largely static but served via WordPress for ease of editing. This is under way now using the same recipe, and the slight extra cost of editing via GitHub will be more than offset by drastically simpler serving.
The remaining troublesome app is the forums, and I still haven’t quite decided what to do there. They contain lots of useful content, but keeping bbPress happy is my biggest ongoing headache – it is nowhere near as simple to use/upgrade as WordPress. I have a half-finished simple forum hosting app (written on an idle weekend) that I’m tempted to finish off, or perhaps I’ll just switch back to Google Groups and cut my losses. Eventually it would be nice to use Github pages to host the whole domain, leaving WordPress and VPS maintenance woes behind.