FinOps Challenge: Running a ‘Free’ Blog on Azure Storage
Setting up a free blog on my own domain, marktinderholt.com, has been a rewarding experiment in low-cost publishing, combining Jekyll with an Azure storage account.
On October 23, 2024, I deployed the initial version, and it’s been running for a total of 20 days (that’s about 28,800 minutes as of now).
So far, I’ve registered about 90,000 blob transactions, with roughly 20,000 of those as GetWebContent requests from actual readers. The rest—around 70,000 PutBlob operations—are from my own work regenerating and uploading site changes with Jekyll.
If I’m being honest, I could make that process a bit more efficient to cut down on unnecessary transactions, but the setup has already been serving its purpose quite well.
The blog itself is compact, clocking in at a mere 95.37 MB.
Using Google Analytics, which I added on October 25, I’ve tracked 848 active users and recorded 1,402 page views.
Even though these numbers don’t fully line up with the GetWebContent data from Azure, they’re a solid indication of real engagement—especially for a blog that’s just getting started. It’s still pretty fun looking at the hits across the globe.
It seems like I’m gaining traction in Poland for some reason!
The hosting cost has been a pleasant surprise. Running the blog has only set me back $1.15 so far, with $0.85 of that spent solely on PutBlob write operations. Realistically, if I either paused my uploads or found a way to streamline my site generation with Jekyll, I’d save the majority of that dollar. This tiny expense in exchange for a functional, personal blog on Azure Storage—connected to my own domain—has been more than worth it, and optimizing my Jekyll workflow could make it practically free.