Earlier this year, I decided that it was time to move to blogging directly on my own site. Part of the reason was to have a bit more flexibility on posting. As many of you know, I generally post directly to Wintellect.com. It's a great way to reach a broader technical audience and to be associated with some of the brightest minds in the industry. That said, it's not always the best place for a post like this one -- something a bit less technical and a bit more personal.
My original site was built using nunjucks. That's right ... a static site, built and deployed using Azure DevOps pipelines to an Azure App Service. I loved the power and ease of use, but extending the site required more work than I was willing to put in. For a while, I considered using Hugo for the new site. It's a similar approach, but definitely much more expressive out of the box than nunjucks, especially when it comes to supporting blog posts. It has great themes and seems straight-forward to use. And as Jeremy said, it's based on Go and Go is just fun. 😊
I author and organize my blogs in Markdown using Markdown Monster -- so I like the idea of being able to continue to publish directly from there. Hugo renders from Markdown, so that was another point in its favor. Since it's just static content generation, it's also easy to deploy from a Pipeline. //: # (https://michael-mckenna.com/host-your-hugo-site-on-azure-storage-deployed-with-vsts/)
For now, I decided I wanted something a bit more like Wordpress. I don't have much time for learning Hugo at the moment. The problem with Wordpress, however, is that I've never been a fan of the work it takes to create a theme for the site. I've done it, but it's painful and time consuming. Even worse, if you find a theme you really like, you have to really examine it carefully to ensure that it hasn't created a security hole. Not my idea of how to spend a weekend. I prefer something a bit closer to the metal.
So where did I end up? Ultimately, I decided to rely on a headless CMS. If you're not familiar with the concept, it's simply a CMS engine that leaves all of the frontend work to you. More than that, it's designed to integrate into an existing site as opposed to replacing it. This means that you can continue to develop the rest of a website using your tools of choice. Over the weekend, I was able to quickly pull together an ASP.NET Core site using Piranha CMS to manage and organize the content. For theming and organization -- it's just straight Razor and some SCSS. With a little bit of code and Shawn Wildermuth's Metablog service, I was able to wire up support for uploading new content directly from my markdown editor. A few uploads later, and I'm up and running on the new platform.
While I haven't ruled out eventually moving to Hugo for my sites, for now I'm going to enjoy the fact that I was able to move to a platform that gives me a lot more flexibility and requires minimal effort to update. I did an incremental improvement to my site, so now it's time to evaluate the results of that experiment. Yes, even my website usese hypothesis-driven development!
Enjoy the new site!