I started blogging somewhere around 2004 with the initial blog using Blogger (Google owned) which was good and did what was required. Then somewhere in 2005, a friend known through Linux User Groups (LUGs) offered to get me a custom domain and also host it. He had the infrastructure so it would not have been too much additional cost for it. This is how my first domain nithinkamath.info came into picture.
When I moved to a shared server and custom domain I chose to use WordPress as it was the most easily installable and popular option even then. So since 2005 till start of 2022 I was on WordPress. In between I had to switch domains as my contact was not reachable for certain time and the domain expired and I could not get it registered quickly enough before someone took it over, but regardless WordPress continued to be the backbone of the blog.
Infrequent blogpost, high risk of hack
As time went on, my blogging became very infrequent so much so that this is my first blog post here since 2017. What this meant was that regardess of if I was blogging or not, I had to update the server for security patches and update WordPress and its various plugins due to security risks. Infact in couple of years back I did get hacked and the hacker had introduced some scripts into all the pages which was causing the pages to get redirected to some random site on load. I had to spend quite some time to clean it up and sanitize the system again.
Static sites - the solution?
Having seen the progression of static blog generators like Jekyll, Gatsby and such for the past few years, I was always tempted to switch but always something else came in between and I could not narrow down on a proper generator tool to use. But finally one day when I had to spend additional time updating the server and ensure WordPress was updated, I decided it was time.
Pros and cons of static blog site
- Fast and responsive pages.
- No need to maintain any server (can go serverless).
- Less chances of getting hacked as there is no dynamic / DB involved.
- No need to keep updating the plugins, if any can be taken care by a pipeline build.
- All content can be plain text (markdown) and maintained in Git with automated deployments.
- Go pagerank speed and SEO optimized setting out of the blog.
- Cheaper in the longer run as the pricing of using serverless is generally covered in the free quota which most cloud platforms provide (for a low visitor blog like mine).
- No dynamic content means that I will have to depend on a third party service to provide comments option which is one of the primary means of engaging with blog visitors.
- Have to write custom code for some very specific functionality as the static site generators are highly flexible but are not as big and wide as WordPress in terms of plugin functionality which it provides.
Say hello to Hugo
Why Hugo? Well this was one of the randomest choice. While researching I saw this was very popular, fast, simple and had lots of themes in the catalog. While browsing through the themes I liked a plain simple no-nonsense theme and it checked almost all the boxes in terms of being SEO friendly, fast and responsive.
So I quickly set up a repo and got started, it overall took me over two weekends (on and off) to get this fully setup and published to prod. While setting up prod, I had initially gone
Bitbucket > Pipelines > S3 + CloudFront route, but then moved to CloudFlare Pages. It was launched a year back and completely automates the process for me and their free version is sufficient enough for me for near future. Also as my domain was already in CloudFlare, having the site also hosted on CloudFlare made sense.
As for the comments, I went for the most popular option (Disqus), though it has it challenges, it was the most simplest and quickest for now. I will move over to something else at a later point.
Overall, WordPress has been serving me well, infact if I was still doing regular blogging I would have continued to use WordPress. But for now since I am very infrequent in bloggin and traffic is also low, this is served best by going static. For now I am happy about having finally got this done using Hugo, infact it turned out to be pretty quick to setup and configure without any time consuming issues. Will post an update if I see any challenges or issues which I did not expect.
Note: The steps taken for migration from WordPress to Hugo will be documented and posted as a separate blog post next week.