How this site is built
How this site is built
Writing
Each post is a Markdown file. Hugo, with the Hextra theme, turns them into plain HTML, CSS and JavaScript: no server, no database.
Hosting
flowchart LR
reader([Reader]) --> cf[CloudFront]
cf -->|origin access control| s3[(Private S3 bucket)]
- The files live in a private S3 bucket that only this CloudFront distribution may read.
- A CloudFront Function maps directory URLs such as
/posts/to theirindex.html. - The certificate and the DNS records are created and validated by Terraform.
Publishing
- Write or change a page.
- Build the site and commit the result.
- Push. The pipeline runs Terraform, which uploads only the files that changed.
Nothing here is done by hand in the AWS console.