What I've learned building this site
Maintaining a personal website can be tedious, and is perhaps unnecessary - but for various reasons I was spurred to take a look, and felt it was something I needed to refresh my currency on. It’s been a long time since I even peeked at what was out there. When I last did, there were a number of solutions like Wordpress and Drupal that were incredibly powerful and cool…but they had some downsides. Perhaps most importantly, unless you were updating them regularly and dealing with the issues that arose (and even if you were), there was a serious risk of getting the site hacked and doing all sorts of nasty things. That risk has only increased over time.
So there are a few things that calibrate what I can a) cope with and b) not cope with and c) am annoyed by.
- I am not a designer, and while I can, I don’t want to faff with HTML and style sheets ad nauseum because I am slow and bad at it
- I do understand how server side, client side, and markup languages work so I can handle some conceptual complexity
- I’d prefer not to get hacked, or worry about it
- I don’t want to spend money
- Simply because it’s unsatisfactory, I don’t want a ‘site not secure’ warning or similar so I need SSL, but as previously mentioned, I don’t want to have to spend money on it, or faff about massively.
So in summary, I’m a lazy cheapskate with some technical knowledge. Can’t argue with that.
So far, I’ve really enjoyed diving into this, and I have myself what feels like a solid system and toolchain and setup.
Google was one of my first visits for hosting, and the free ‘compute’ platform was very interesting. Lots of potential for server side stuff. However, it didn’t include SSL and you were back in the world of third party hosting or expensive loadbalancing if you wanted it. That’s where I came across Firebase - a Google acquisition - and their basic free hosting. In terms of infrastructure and security, it doesn’t get much better than Google. I also like the price (free, as mentioned), and that you can set it up with your own domain and SSL without incurring costs. You have to know what you’re doing with DNS, which is fine by me. There is no server-side scripting, but given that this is what gets hacked on your site generally speaking, that’s not bad thing. So the motto is: Speak softly, use a static site (i.e. just serving pages with no server scripting), and have a massive random password for your hosting account (and two factor as well, if you can). Getting Firebase up and running is a tad involved, as you need to install Node.js and the Firebase CLI on your machine, but once you’ve got your hosting all set up, you can type ‘Firebase deploy’ from your development environment and it all goes up. On the firebase web console, you can roll back to a web version. Yum! We’re way beyond Microsoft Frontpage and Demon Internet here people…
Ok so far, but editing static HTML files is really beyond tedious for several reasons, not least of which is managing what happens when you tweak something or change the navigation and need to replicate it across every file. The solution, it turns out (or at least one of them) is Jekyll. It runs on Ruby, so you have to set your machine up with that, and then you edit files in the Markdown format, which is great for (relatively simple) HTML, and you can always paste snippets as needed. Jekyll also has a ton of community-developed themes to use. Having got it going, you have a set of files with all your Markdown and templates, that deal with the irritants, and you can create a blog post very simply, as I’m doing now. Jekyll then can process all of that into a full set of static files to deploy using Firebase.
To edit the files, I discovered Atom - and it is absolutely gorgeous. It went to beta in 2015, according to Wikipedia, which means it didn’t exist last time I looked for a markup editor. You can load in a plugin that helps with the ‘Markdown’ but it does the task extremely well of editing the files for the website.
I’ve got what I wanted! It is satisfyingly just a little techy, but not tedious. I can write a post without having to think about HTML too much, but get complicated if I want. I’ve got a great editor, a clever offline tool for creating static files, and a fast, free, SSL-enabled hosting service. In 2018, that feels like progress. I wonder what it will feel like in 2025…