Building this website
In my first post, I think it apt to talk about my experience building this website. I’ll discuss its purpose, design and tradeoffs.
Purpose and audience
I must confess that I fell prey to writing code before I had a clear purpose or audience in mind. This is a common trap for the keen but unwary programmer. The lack of purpose quickly became apparent and problematic while I was writing the website: a website for work-hunting will look very different to a more informational website, for instance.
Having been forced to think about it, however, I still don’t have a super great idea about what this website should really be for. I’m not currently looking for a job, and I think that CVs and LinkedIn are better tools for summarising work experience. While I do work on some personal projects, but these don’t really benefit as much from the freedom of presentation as, say, more design-oriented projects might. Likewise, there might be less effortful media for publishing my blog and other reference materials.
So, for now, this website is going to serve as my professional landing page on the internet. In a sense, it will be a Jack-of-all-trades: I’ll link through to my CV and LinkedIn; I won’t write blog posts frequently, but if I do, I’ll post them here; and I will try to write at least a few lines about my personal projects.
Stack
Diving into the techincal specifics, I built the website using a static site generator named Hugo. I chose Hugo over writing the entire website myself from scratch because it comes with several nice themes, and I chose Hugo over some of the alternative SSGs because it can be installed and run very easily.
Hugo and its themes seem to want to do everything in a very specific way, e.g. assuming that you want to display all your recent blog posts on your home page. Going off the beaten track, such as using deeply nested page hierarchies, is typically not well-handled by the themes (or at least those which I tried). While Hugo itself is very customisable, writing sustainable deviations from the core theme code seems hard, so I’ve submitted to doing everything the “one true way” for now.
I am currently hosting using Gitlab Pages. Github Pages might have been the natural choice, but I believe that Gitlab has better support for Hugo, and Gitlab will let me keep the source repository private.
Future content and present compromises
Here’s what I plan to add to, or improve in, my website:
- The list pages (e.g. the homepage, or the supervisions page) have centred text, which I would ideally align left.
- I’d prefer if the list pages displayed the content in a list format, along with the date, a little bit like the Bingo theme.
- More content about my personal projects.