A New, Old Approach To Website-Building
By Zoë A. Porter
Every couple of years, I try out something new with this web site. Up until now, this site was run under Joomla!. Joomla! is a content management system for creating websites, written in PHP. It is open source software, and in a way a step up from simpler blogging solutions than for example WordPress.
For the purpose of running a simple blog-style web site, with little to no page views anyway, let’s be honest, it is somewhat of an overkill solution.
Joomla! adresses businesses for hosting their home pages and web shops and a whole range of other solutions. For my purposes, it has lot of overhead, that I don’t need. Also, it has a whole set of disadvantages, that make it a pain in the proverbial behind sometimes.
Some of them are:
- It’s unenccessarily complex to use, it takes a lot of effort to prepare, before you can start publishing. Compared with tools such as WordPress.
- There is a huge bubble of commercial developers around it, so many of the tools for it are proprietary and way too expensive for a hobbyist (for commercial users, this actually might be an advantage, since you can buy the expertise, you don’t have).
- It’s written in PHP. This makes it clunky and prone to error. (See here for more detailed information on why PHP sucks).
- It requires constant maintainance (updates every other week, migrations to new major versions etc.)
- It’s slow, and eats up a lot of resources on your server.
- It always requires to set cookies, even if you don’t need them..
- It’s based on a database, so you cannot easily store your configuration and content in a git repository.
Now Joomla! has announced the end of life for the 3.x versions of Joomla!, meaning everyone is forced to update to Joomla! 4. A neccessary step, of course, but a lot of extra work for me, because the migration requires some effort.
I took this opportunity to switch to a new toolkit entirely, and migrated away from a CMS overall. My new approach is indeed a very old one: I’m using static web pages. While a CMS uses a database in the background, and creates the page you requested on the fly, everytime you view it, a static site is just that: A collection of html documents and its resources (such as images), that is sent to your computer when it’s required. While this seems to be a step back into the 90’s, in reality, it’s not. Because in 2022, we have powerful tools called static website generators to do all the heavy-lifting. The difference to a CMS is, that with a static site generator, the site is regenerated everytime you change something, and then uploaded to the webserver.
It has a lot of advantages. It’s a lot faster, for starters, because the pages are only generated once, and not everytime they are requested. It is also a lot less vulnerable to attacks, because there is not much of a surface for attacks, if all your web server does is send you a file. No cross-stite-srciping, no sql-injection-attacks.
The toolkit I chose for generating the website is Hugo. Mostly because it is well known, well documented and easy to use.
Hugo allows you to write content in Markdown, and renders a website from it. You can use all features of HTML 5 and JavaScript you learned to love and hate, and -what’s most important- all of your source code is plain text. So it’s super easy to use a source code management system such as git to manage your website.
Being the nerd-girl I am, I automated most of the process, by using a combination of gitea and buildbot to publish any changes, every time a change in the release-branch of the site project is made.
Long story short, I completely redesigned the page, and I hope you like it this way. There will be some cosmetic changes in the future (I have to tested the look-and-feel on mobile devices yet), but the path is clear.
I hope, dear readers, this is to your liking, and you might enjoy future content on this little collection of mine.
Kind regards,
Afanen