As I work through various problems I encounter as a developer, I occassionally come across things which have little to no answers. Or the answers are buried away somewhere that’s hard to find. And in very rare cases, I even come up with some brilliant solutions (also known as future blog posts) on my own. In these situations I want to have somewhere to write the answers down in a way that will be easy for me to find again.
I’ve done a fairly good job of using tools like Obsidian and Apple Notes as a PKM solution but I find I actually store too much or not enough for it to super useful in the future. Alternatively, I forget that I even wrote it down and resort to trawling through the internet (or more recently ChatGPT) again. The solution: a blog.
A blog requires taking time to think about the problem space. Other people are going to read it and I don’t want to be judged! And that’s a good thing. It means I will endeavour to make sure I really understand what’s going on and put just the right information in that future me can make use of it. With the decision to create a blog, I needed a setup that balanced flexibility and simplicity. Here are the key requirements I set out to achieve.
Requirements
I could have easily gone with something like WordPress 🤮 or Wix, but that’s just not very interesting. I wanted to experiment with hosting my own web server on “bare-metal”. I’ve never set up a VPS before, bought a domain that’s not part of a package or even really created a website without some WYSIWYG (not including Flutter Web of course).
VPS
A VPS—or virtual private server—is a virtual machine that provides virtualized server resources on a physical server that is shared with other users.
But, I also didn’t want to have to write a bunch of code. I’d rather it be a setup once and then forget about it kinda deal because the main aim is to write blogs. So the main requirements were:
- Self host
- Minimal coding
- Markdown formatting
- Fire and forget
- Good documentation
- RSS baked in
- Performant
After a quick search and conversation with ChatGPT I landed on Hugo. It ticked all the boxes and then some! My next post will be the steps to get it all working so stay tuned.