Why are you starting a blog?
One of my primary goals in starting a blog is to try and improve my skills as a technical writer. At the same time, as a developer with over 20 years of experience, I hope that I have learned lessons that can provide value to the developer community.
How did you choose the software to power this blog?
I had a few primary goals when choosing where to host this blog.
- I wanted to own my content, per the advice of Scott Hanselman.
- I wanted something lightweight and fast.
- I wanted something that was as near to free as I could find.
- I wanted something I could host in Azure.
To start my search, I eliminated any hosted solutions, like Medium or Blogger, as I wouldn’t be in full control of my content. I wasn’t very interested in the more popular tools like WordPress, as I was looking for something lightweight. Since a blog is essentially static content, with occasional updates, I was most interested in using a static website. Pursuing that angle lead me to discovering Hugo.
Hugo jumped out to me for a few reasons. First, it generates static content, which is simple and very cheap to host. Secondly, you write your content using Markdown, which I am already comfortable using. It also has many themes to choose from, which is a benefit to a design challenged person like me.
What technology are you using to power this blog?
This blog is generated by Hugo, and I am currently using the Coder theme. The site is hosted as a static website in an Azure Storage Account. In order to use a custom domain, it is using Azure CDN endpoint. All of the content is hosted in a GitHub repository, and is using GitHub Actions to automatically generate the content and publish it the Azure Storage Account.
For comments, the Coder theme has built in support for Disqus, but that would require me to either have ads or paying for a higher tier, neither of which I wanted to do. I ended up discovering Staticman while searching for alternatives. It uses a clever method of creating a Pull Request in GitHub to add comments to the site. I added basic support for it, and long term I would like to create similar functionality using Azure Functions so that I can have everything hosted in Azure.