First Post
or, How I Finally Got Around to Setting Up a Website
Thanks to the pandemic, I finally got around to setting up a personal website.
Why
Despite having an aversion to developing an online presence, I’ve wanted to set up a personal website for a while now. It’s nice to have a home base you can access from any device anywhere in the world, when you spend a good part of life living on the Internet.
A big reason why developers set up personal websites is for having it double as a resume/portfolio site, but I’m in the habit of being happily employed, so it’s not actually my main reason for going to the trouble.
That said, I did want to try my hand at something more… hands-on, and it’s always fun to learn new technologies, even if they don’t necessarily translate to my usual day-to-day. Hence this, rather than pulling something together on WordPress or Wix.
What
Starting out, I thought I’d write everything from scratch with React, maybe with a Django backend deployed on a VM somewhere. I’ve done it many times, after all, so I’d be very familiar with the process. Next.js also seemed like a shiny industry-standard framework to learn next (hah), and a natural extension of my current React skills.
So why is it that you’re looking at a Hugo site?
I didn’t even know about Hugo when I first got around to tackling this project. I was vaguely aware of a programming language called Go, but probably never actually saw any code written in it. If I did, I didn’t recognise it. So you see, this choice of framework brings with it fairly unfamiliar territory.
My immediate response to starting a new - anything - is to do extensive online research first, then mull over the options until I fall asleep. (If I wake up and something still seems like a good idea, then it’s probably, hopefully, not a bad idea.)
So I trawled through other developers’ blogs, project logs, tutorials. Professional landing pages. Art portfolios. Top 10 lists of the most impressive personal websites out there. There was even some guy whose site was basically a deck of high-energy presentation slides. 1,000 tabs later, I managed to figure out that I wanted a fairly boring, traditional design (time well spent‽).
For example, it should follow a standard layout, with a top navigation bar, and an easy way to search for content on the site. Clean, minimalistic presentation. Light/Dark mode would also be nice (although I’m given to understand that any self-respecting dev defaults to dark mode). In short, I wanted to go for a site that invites you to hang around and explore (once there’s enough content on here), rather than just putting on a fun show before sending recruiters on their way1. I’m going to hang around here too, after all.
Hugo wasn’t far off on the list, once it was clear that a static site made the most sense. Simple, stable, secure = minimal points of failure. Sure, I could go spend hours making something myself in React with cool transition animations and dynamic content just to show that I can, but I’m actually more interested in focusing on writing good stuff in Markdown. As a dev, the itch is strong to build something from the ground up - but if the site is supposed to reflect what I’d do anyway, my response is that I’d pick the right choice over the impressive choice any day. (Does anyone actually want to dive into other people’s repos for a personal website when they’re not showcasing frontend talents?)
Besides, it’s hard to say no to the blazingly fast speed of Hugo, and its vast library of open source themes.
How
Setting up a site in Hugo is as easy as they say, which in this case means it’s surprisingly easy. If you’re more or less happy with the theme you found, you don’t even have to know any Go. Good documentation is worth its weight(?) in gold. It can be almost as simple as copy-pasting HTML to make your Neopets page look cool in the good old days.
If you’re like me and don’t like the idea of giving up on drafting content in the browser with fancy UI even though it’s pretty unlikely you’ll ever have to do so on some random computer that doesn’t have your favourite dev setup anyway, you can install a content management system like Netlify CMS. With that set up, you can easily log in on an admin page and upload content from anywhere with 0 terminal access.
That’s It
Anyway, if you’re here because you’re also thinking about setting up a little home base of your own, consider this another vote for Hugo. Even if you’re not a dev, it’s a cool way to get started with making sites, and hopefully learn something new along the way.
This is just the starting point! Looking forward to doing more tinkering.