The static route
When I built my first website, I wrote all of the HTML by hand. At that point, it was just HTML. It was annoying to replicate the navigation bar across every page, even though I only had a few pages to update.
I tried a few different methods, such as using frames, and adding the common code via Javascript. I also tried reducing the number of pages on the site that I needed to update, by adding a dropdown and opening some of the pages in a new window, sans navbar. The Javascript method stayed on the site for quite a while.
The home-grown CMS route
Once I learned PHP, I wished I’d learned it sooner. I quickly replaced the JS code with PHP includes. Then I started adding a bit more functionality to the site, and things slowly evolved into a mini CMS. That CMS became Majestic (later called Injader, and much later, Jewel CMS).
I don’t regret the path I took – I learned plenty along the way. But I did miss the simplicity (and flexibility) of the custom-made website I had before.
The WordPress route
A few years back, I went through a phase of setting up a lot of WordPress blogs. I enjoyed being able to download and install WordPress without needing to worry about something I’d need to build into a CMS just to make it work for my latest blog idea. At one point, I owned 50 domains. Some were empty; others had WordPress with no posts; some had content; a few started to gain a bit of traction.
When you’re dealing with that many sites on your own, the admin quickly becomes crazy. Plugin upgrades were always just around the corner. I downloaded dozens of backups every week. On top of all that, the VPS I was using was struggling under the weight of all the installs. It wasn’t uncommon for the server to be running ok one moment, and offline the next due to the server being maxed out. I tried WP Multisite for a bit, and didn’t like it at all.
I certainly wasn’t spending enough time writing content.
These days, I keep things much simpler. I stripped back my excessive quota of domains a long time ago – it certainly saves a bit on renewal fees. In total, I now have 8 domains.
Why custom code?
So to the post title – why do I custom code my personal sites?
For simplicity – for flexibility – and for fun.
The code isn’t particularly clever, but it’s clean. I’ve also built it without a database (for now, anyway) to keep it super quick.
I don’t want to build a blogging engine for myself, which is why I use WordPress.com for my blog.
The rest is custom-coded.
For larger projects, especially anything I build professionally, frameworks are a better choice. But for my own sites, I prefer to keep things simple.