It is done
I finally took the step. The blog is now a static website being build using Hugo. It has been 3 years since my former colleague Simon Wåhlin switched. So he went with Azure Storage. I was already using Cloudflare for DNS and CDN, so I decided to take the full plunge.
My blog stack now contains:
Hugo
Hugo is the software that takes my content. Hugo is a static site generator written in Go. I write my site in plaintext and images, hugo then transforms them to the site. It allows me to write the entires in a simple format.
Github
As with any kind of documentation it is important to have version control. This allows me to see what has change and revert problems. In my professional life I have been through many version control systems. Given that I already had an account on github I spun up a new repository and was done.
Cloudflare CDN / DNS
There isn’t much to say about Cloudflare CDN or DNS. I suspect most people think CDN more than anything else when the company is brought up. But having the DNS there too helps a lot. Cloudflare are pioneers when it comes to DNS and web security. They are among the first to implement new cryptos, to secure trafic. They are also running amongst the forerunners on the DNS side of the internet. Sometimes running a bit faster than they should.
Cloudflare Pages
This a service that is new for me. It allows me to build the static website without me doing anyting on my own, or have server’s doing things for me. It integrates fully with both the CDN from Cloudflare and GitHub. On every commit to the Github repository, Cloudflare will build a small environment and run hugo it. This produces the static website and puts it the Cloudflare storage.
Cloudflare Workers
So what is this if Pages already does build the website for me. There is one caveat with this setup. If I want to publish something in the future. Then I need to make Pages build the website when the page is due.
This is where we can use Workers. I have setup a webhook in Pages. But I need a trigger. You can configure Workers as a cron machine. And then let it reach out to Pages and force a rebuild without anything being committed.
tl;dr;
I now have a static blog. Running for free (given my amount of visitors). With few dependencies.