Making a HUGO Website The Full Stack Way - Intro
What’s a static Jamstack website?
A static website (as opposed to a dynamic website) is simply a website that only consists of data files. Unlike Facebook which shows you a customized feed and also stores your photos, for example, a static page shows the same content to everyone. This makes static pages blazing fast and secure since the static content only needs to be served as static files with no need to run a server’s CPU 24/7. “Jamstack” is a web architecture built around the idea of static sites that can have some dynamic content via plugins. For example, the Disqus comment section at the bottom of this static blog site you are currently reading is a third party plugin managed by the Disqus company!
What Is HUGO?
HUGO is a popular and fast tool used for generating static websites such as blogs, technical documentation, or personal landing pages. It allows folks to write content for their websites using Markdown rather than HTML and has a huge library of themes which can save you the trouble of designing your blog or personal site! Unlike other options such as GatsbyJS or Jekyll, HUGO is written using the Go Programming language on the backend, making it blazingly fast. HUGO can generate thousands of webpages from your Markdown code in mere milliseconds where other options may take many minutes.
Who is this tutorial series for?
I started this tutorial series mainly to document my own process in learning how to build this very blog using HUGO and Google Cloud from the ground up. This tutorial series is for folks similarly interested in making their personal sites using HUGO and deploying their site on Google Cloud using modern Infrastructure-As-Code (IaC) tools such as Terraform using DevOps best practices. Self-managing infrastructure and deployment is purely optional (and educational) as well as fairly inexpensive, costing less than $1/month.
If you are simply interested in getting your site on the web ASAP, there are much more user-friendly services such as Netlify which can greatly reduce the hassle of managing your own deployment with far less work while also handling things like HTTPS and CDN (which are not covered in this tutorial series).
If you are not comfortable with handling the details of building a static site using Markdown, you may want to stop reading and try out Forestry.IO as a good alternative before proceeding (costs money after the first 3 sites).
- Part 1 - Making a Hugo Site
- Part 2 - Manual Deployment to Google Cloud
- Part 3 - Infrastructure as Code (IaC) with Terraform
- Part 4 - Automating deployments with Github Actions
- Optional - Using Cloudflare for (free) HTTPs
Example Template on Github
Read the Next Post -> Getting Started
Making an ECS WebAssembly Game with Rust and Bevy
Why Rust for games specifically? To follow-up on my previous write-up wherein I describe the rationale for learning Rust, I decided to tackle the learning experience through writing a game.Read more
Why Learn Rust?
Recently, I decided to take some time to learn the Rust programming language. In my day-to-day job as a machine learning engineer working in bio-tech, largely using Python, I’ve started to notice the limitations and faults of using weakly-typed poor performance languages for production.Read more
Stable Diffusion - De-painting with Stable Diffusion img2img
Stable diffusion has been making huge waves recently in the AI and art communities (if you don’t know what that is feel free to check out this earlier post).Read more