This website is built using Hugo and hosted on Amazon Web Services. Let me explain.
I’ve been interested in hosting a website using a minimal bit of code or a static site generator for some time. I tried using one in the past, but it was pretty onerous and I couldn’t figure out a good workflow. This was before I got heavily into automation, CI/CD, cloud services, etc, in my professional life, and I learned quite a bit since then. In the meantime, I tried hosting on a paid platform for a while and just wasn’t happy with it.
Enter Hugo, Gitlab with CI/CD pipelines, and AWS.
This website is built using Hugo with the Hugo Coder theme. I use Gitlab as my source code repo of choice and I implemented CI/CD on the project to build and deploy the resulting site to AWS S3. Since S3 has an access cost, CloudFront is used to actually serve the content. This being a static site, practically everything goes through CloudFront.
The workflow is easy:
- Make a branch
- Make code edits
- Commit logical groups of changes with relavent messages
- Push branch when ready
- Wait for draft pipeline to complete
- Review draft using draft S3 bucket URL
- If I’m not happy, repeat the previous bits
- If I am happy, merge to master
- Wait for production pipeline to complete
- Review the result
The one thing I have to remember about the draft pipeline is it runs Hugo with the drafts flag, so it can show content that may still be set to draft. If I miss changing this on pages I’m ready to publish, they won’t show when the production pipeline runs.
In any case, this workflow is so much better than my previous attempt at a static site generator. In fact, this is so easy, I can do it on my iPad. I can do it on my iPhone. I can do it on any web connected device, really. And with the draft pipeline, I still have a way to review the changes, though at a minute cost (S3 usage ain’t free).
For the first year, if your site is low traffic, CloudFront is free. After that, if you’re fitting within the free tier, your cost only really should go up to about $1.50/month. That’s totally livable.
I’m using this website as an exercise in managing an online presence with automation and a simple workflow. As I work with AWS, Git, CI/CD technologies, and whatnot, this should help keep me up on how these things work, and there is room to evolve as needed.
Unlike old iterations of my website, there is no blog, here. This website is here to document my interests and share my results and my knowledge. It will be evolving over time as I spend more time building the content and organizing my thoughts.