Road to 50: how this blog runs for about £1 a month
Fifty posts in, here's exactly how azureblog.co.uk is built, hosted and published, and why the whole thing costs less than a coffee each month.
On this page
This is post number fifty. It felt like the right moment to open up the bonnet and show how the site itself works, because it's a neat example of how far the free and near-free tiers in Azure can take you.
- 01Write the post
- 02git push to main
- 03GitHub Actions builds
- 04Static Web Apps edge
- 05Live on azureblog.co.uk
The bill
| Service | What it does | Monthly cost |
|---|---|---|
| Static Web Apps (Free) | Hosts the site on a global edge network, with free managed SSL certificates and custom domains | £0 |
| Azure DNS | Hosts the DNS zone for the domain | about 40p, plus a few pence per million queries |
| GitHub | Stores the source and runs the build and deployment workflow | £0 |
The domain registration is the only other cost, and that's paid yearly to the registrar. Everything else rounds to well under £1 a month.
The architecture
There's no server, database or CMS. A small Node.js script turns a folder of posts into plain HTML files, and Static Web Apps serves them.
- Static Web Apps serves the files from the edge. A small
staticwebapp.config.jsonsets security headers, cache rules and the 404 page. - Azure DNS handles both the bare domain and
www. Bare domains can't use a CNAME, and many registrars don't offer ALIAS records, so moving the zone into Azure DNS was the clean fix. The domain stays registered where it was; only the nameservers changed. - GitHub Actions runs the build and deploys the output with the official
Azure/static-web-apps-deployaction.
What the build does
Each post is a single HTML file with a small block of metadata at the top: title, date, tags and a one-line summary. The build script reads them all and produces:
- a page for every post, tag and tool, with reading time worked out from the word count
- a social sharing image for every post, drawn as SVG and rendered to PNG
- the RSS feed, sitemap and a search index
- a calendar feed of Microsoft deadlines from the timeline
- the diagrams in posts, which are written as a few lines of JSON and turned into HTML and SVG at build time
The tools run entirely in your browser. The JWT and SAML decoders, the GUID lookup and the rest load a JSON file and do the work locally, so nothing you paste is sent anywhere.
How a post gets published
The workflow also runs once a day on a schedule, so anything date-based, like the countdowns on the timeline, stays current without a commit. No plugins to patch, no hosting control panel, no database backups. Git history is the backup, and rolling back a mistake is a revert.
What I'd tell anyone starting a technical blog
- Start simpler than you think. A static site is fast, secure and nearly free. Add a build step only when you have a reason to.
- Write the post you wish you'd found. Most of the posts here started as an error message or a change notice that needed a clear explanation.
- Link to the source. Microsoft changes things often. Every news post here links to the official documentation so readers can check the latest detail.
- Use your own platform. Hosting an Azure blog on Azure keeps the skills sharp and gives you real-world material to write about.
Next fifty
More of the same: what's changing in Entra ID, Intune and Azure, what it means in practice, and the scripts and steps to act on it. Thanks for reading.