Skip to content

MattJColes/colescodes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coles.codes

Personal blog of Matt Coles — Principal Engineer at AWS, based in Melbourne. Live at coles.codes.

Notes on building with LLMs and agents, fine-tuning models at home, AWS architecture, and a homelab that's gotten gently out of hand.

Read it

Stack

  • Hugo (Extended) — bespoke, themeless site: templates in hugo/layouts/, styles in hugo/assets/css/.
  • AWS S3 + CloudFront, provisioned with AWS CDK (Python) in cdk/.
  • Shipped by GitHub Actions over OIDC — no long-lived AWS keys.
  • Comments via giscus (GitHub Discussions).

Run it locally

Needs Hugo Extended ≥ 0.118 (CI pins the exact version in .github/workflows/deploy.yml). No submodules — a plain clone is enough.

git clone https://github.com/MattJColes/colescodes.git
cd colescodes/hugo
hugo server -D            # http://localhost:1313

Production build (what CI runs): hugo --minify --gc → output in hugo/public/. A pinned Hugo binary for local verification lives at .tooling/hugo/hugo (gitignored).

Write a post

cd hugo
hugo new posts/my-post.md     # then set draft: false

Always add a description: in the front matter — it feeds the meta description, social cards, JSON-LD, and llms.txt. The writing voice + full SEO checklist live in CLAUDE.md.

Repo layout

Path What
hugo/content/ Posts (posts/) + single pages (about, projects, friends)
hugo/layouts/ Bespoke templates + partials (incl. schema.html, robots.txt, index.llms.txt)
hugo/assets/css/ NN-*.css files concatenated into one fingerprinted bundle
hugo/static/ Favicons, og.png, fonts, images/
cdk/ CDK Python app (S3, CloudFront, ACM, Route 53, GitHub OIDC), us-east-1
.github/workflows/ deploy.yml (content), infra.yml (CDK)

Deployment

Push to main touching hugo/** → GitHub Actions builds Hugo, syncs to S3 (split cache-control), and invalidates CloudFront. Infra changes go through infra.yml (cdk diff on PRs, cdk deploy on main). See CLAUDE.md for context flags, conventions, and the SEO/LLM setup.


Built with Hugo, AWS, and a fair bit of Claude Code.

About

Personal blog

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors