Why I chose Hexo for my Technical Blog

Why I chose Hexo for my Technical Blog

When the time came to relaunch my blog I spent a fair amount of time researching options. I wanted something that worked well for me that didn’t require too much infrastructure. I also wanted to keep costs fairly low and not take on a large monthly recurring cost.

  • Ideally, I wanted static content that I could host in an Azure Storage account or some sort of static website hosting.
  • I wanted something that felt comfortable for me. I spend a fair amount of time authoring articles in Markdown and it has really grown on me over the past few years.
  • An application with a fair amount of plugin and theme options, I don’t really want to get involved in creating a custom template. A reasonably sized community was a plus.

The Competitors

I evaluated a variety of different options before settling on Hexo. Obviously I’m sure there are more options out there, but this is what I looked at.

  • DocFX - I’ve had some experience with DocFX in the past and honestly, it is what I really wanted to use. But the lack of theme selection and the fact it’s primarily focused on documentation meant it was not a great fit for what I wanted to do. It is the engine behind Microsoft Docs and it does that really well so I will continue to monitor the project.
  • Hugo - A close second, Hugo is very similar to Hexo. It is built on Go rather than Node.js. It generates a static site that you can publish in much the same way. The configuration seemed a little bit more involved, but in the end it was almost a coin flip. Now that my content is in Markdown and ready to roll I may still give Hugo a try to compare and contrast.
  • Ghost - Their hosted platform pricing was a bit steep for me. And while they did offer self hosting the config seemed fairly complex and the requirements were also steep. I also don’t really need the fancy admin interface.
  • Medium - This is where my blog was before. It is a great platform for getting your content out there. But it’s not really a great platform for the true technical blogging that I wanted to do. I do still intend to post opinion pieces.. but not enough that Mediums core benefit would be that useful.
  • Wordpress - Obviously this option is one of the largest out there. And there are definitely a ton of options for plugins and themes. And I have experience with it in the past. But for me it felt like using a bulldozer to solve something I could use a shovel for.

Settling on Hexo

I ended up settling on Hexo for a few reasons in no particular order.

  • Content is almost entirely written in Markdown, which I am familiar with and would be able to manage easily.
  • It was fairly lightweight and out of the box I could generate a static website for direct upload almost anywhere.
  • It had the concept of adding posts and pages which was important to me, and one of the primary reasons I did not select DocFX.
  • It had a fairly good selection of templates and plugins I could choose from.
  • I saw an opportunity create a CI/CD workflow for Hexo (which I’ll cover in the next article)

The one thing I was not comfortable with was Node.js but it is something that I’ve been wanting to experiment with.


Once I settled on Hexo I set out on the road to migrating the blog to Azure Storage and a CI/CD pipeline with Azure DevOps. I was able to get Node up and running on the Windows Subsystem for Linux (Ubuntu Specifically) for local testing and content generation. The process was mostly painless since I have experience with Linux, Git and Azure DevOps already. For more detail on using WSL with Node and Hexo you can see my guide here.

I was also able to use other tools I was familiar with like Visual Studio Code for content and template editing and Notion for jotting down article ideas (you can copy/paste and/or export to Markdown).

You can find an in depth review of several options here. This site also covers Jekyll which I did not include in my decision process as I didn’t want to get involved with Ruby.

Hopefully this is helpful! Stay tuned for my first in depth technical writeup on integrating Hexo with an Azure DevOps Pipeline.


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now