I started this site and blogging as a personal journal almost exactly 16 years ago today, in September 2003. Over the last 16 years, I’ve used three different open source engines to implement the site, starting with .Text, it’s successor SubText and then moved to Orchard CMS in 2013. Orchard served me well for the last six years, but after much consideration, I’ve made yet another re-platforming move.
The site you’re reading right now is on the new platform!
All three engines in the past were dynamic, in the sense the codebase was ASP.NET and they were all driven by a Microsoft SQL Server database. The last rollout as much cloud oriented as I could get where the site codebase was an Azure Web App, the database was an Azure SQL Server Database and all media files were in Azure Storage Blobs.
But over time, I realized I didn’t need this dynamic nature. My site is entirely all content and anything that was dynamic could be implemented all client-side. So I didn’t need server-side processing. Static sites were becoming more the rage with engines like Jekyll which GitHub Pages uses and many others.
At the start of 2018, I looked at the various options out there and found one that was growing in popularity: Hugo . The more I looked, the more I liked!
Hugo is written in
but you don’t need to know it. Armed with a powerful templating syntax, you write your content in markdown files, run the
hugo command and it generates a 100% static site consisting of HTML and media files, nothing more!
This makes hosting the site not only a breeze, but insanely fast. I don’t need the power of a web server anymore, now I host the site using the
Azure Storage Blob
. With this, you create a special container
$web in the storage account, enable static sites, and Azure just serves up HTTP GET requests on port 80 & 443 via a URL they map to.
One of the best parts about this whole setup is there is nothing dynamic to break. There are things out of my control, like a DNS resolution issue, an Azure network our storage outage, but I no longer have to deal with a slow web app or SQL database that’s come to a crawl. And, unlike before when I was working with .Text, SubText and Orchard CMS, it’s a piece of cake to preview the site locally on my laptop before I publish it for the world to see.
That’s Hugo sites, built & hosted on Azure static sites in a nutshell. I’ll have additional Hugo-related posts I plan to write in the future that you can view from the Hugo tag summary page, so stay tuned for more details. I’m looking forward to share how the migration went, how I’ve implemented automated builds & deployments using Azure DevOps, performance optimizations and more!
Moving 16 years of content was no trivial task, especially when this is my 4th platform in as many years. Each platform had it’s own URL structure and I take great care to keep URLs from changing, or at least utilize HTTP 301’s & 302’s to preserve my search rankings.
In addition, over the 16 years I’ve stored referenced assets (images, downloads & other media) in multiple places. From on the site to Skydrive, Live.com, Dropbox, Flickr, Imgur… you name it. There’s also the mix of content written in HTML vs markdown, different ways of publishing code references… you name it.
With this update, I’ve taken the time to take full inventory of what I have. I have a list of things (images, downloads, URLs) I reference that are no longer active and for those media I do reference off my site, I’ve downloaded copies of those things. I’m in the process of consolidating everything under one roof, this site, but that will take time. The big things are fixed, but it will take time to get everything sorted. It’s just easier to do now that the site is up and running on the new infrastructure & platform.
But in the meantime if you see something that doesn’t look right… anything like:
- spelling errors
- broken links (to sites, images or downloads)
- malformed pages
- malformed code references
Or anything else that looks odd… please let me know! I’ve setup a GitHub repo with an issue list that you can use to submit an issue to me. I’d really appreciate it and you’ll be able to quickly see when things get fixed. I’ve shared this link on every page on the site (the yellow call-out box in the upper right) to make it easy. The more you can share (page, what’s wrong, screenshots, browser used, etc), the more helpful it is! Thanks!