It’s hard to believe that I’ve been blogging consistently since 2006 — 19 years! And before my personal blog, I ran a daily-updated Counter-Strike website, back when the term “blog” didn’t even exist. Overall, it’s been 25 years on the world wide web!

For hosting, I used a shared server from Dreamhost all these years. When Dreamhost removed Passenger support from shared servers, I got a dedicated server from Hetzner.

I’ve been busy setting up my new server past few weeks and it’s been a blast. I’ve been having so much fun learning about Linux system administration and all the web technologies I’ve missed while working on mobile apps. With my own server, I can run my own tech stack and experiment with new technologies. I can also run my own services like a VPN, self-hosted GitHub Actions, an RSS reader, or a private Docker registry.

My blog is now powered by Hugo instead of Wordpress. So why switch from WordPress to a static site generator? I first moved Wordpress to a Docker container on my dedicated server. I first encountered SSL issues that I fixed but had an infinite redirect on the admin panel. This issue reminded me of a quote that I like:

“The old man knows how to avoid problems the young man knows how to solve.”

I didn’t want to go down that rabbit hole. There were two other reasons:

  1. The WordPress Docker image was 695 MB — seemed too heavy to run Apache, PHP, and MySQL for a static site.
  2. My web server logs were filled with attempts to exploit WordPress vulnerabilities, making it an attack surface for hackers.

I researched other static site generators as well, like Jekyll (Ruby), Gatsby (JS) and Astro (JS) and checked if they have Wordpress importers.

Ultimately, I chose Hugo because I feel most comfortable dealing with Go language. Looking back, I’m so happy with my decision, Hugo is very fast in generating this site with 175 pages and it was simple enough for me to understand and customize the theme.

Cheers to the next phase of my blogging journey!