cloudartisan.github.io
Hugo blog template for developers — a static site generator setup for personal content and project showcases
This repository provides a Hugo-based static site generator setup for a personal blog and project showcase. It utilizes the Congo theme and includes wrapper scripts for streamlined local development and production builds. The setup simplifies content creation with predefined templates for posts and projects, and automates deployment to GitHub Pages.
- Static site generation using Hugo and Congo theme
- Wrapper scripts for local development and production
- Predefined content templates for posts and projects
- Automated GitHub Pages deployment via Actions
- Python scripts for markdown and link maintenance
README
View on GitHub ↗Cloud Artisan Blog
Personal blog and project showcase for David Taylor (Cloud Artisan).
Technology
This site is built with:
- Hugo - A fast and modern static site generator
- Congo Theme - A powerful, lightweight theme for Hugo
The theme is vendored under _vendor/, so day-to-day builds do not need Go or a live module download.
Local Development
Clone this repository:
git clone https://github.com/cloudartisan/cloudartisan.github.io.git cd cloudartisan.github.ioInstall the Hugo extended binary:
- macOS (Homebrew):
brew install hugo - Linux: download the extended release from gohugo.io or install it via your preferred package manager
The site is pinned to Hugo
0.160.1via.hugo-version.- macOS (Homebrew):
Build or run the site through the wrapper script:
./scripts/hugo.sh server -DThe wrapper keeps Hugo's cache inside the repository (
.hugo_cache/), which avoids permission and path quirks on both macOS and Linux.View the site at http://localhost:1313/
Production Build
./scripts/hugo.sh --minify --buildFuture
Updating Theme Dependencies
Normal builds do not require Go. You only need Go when you want to refresh vendored Hugo modules, for example when updating Congo.
- Install a recent Go toolchain.
- Refresh the module dependency:
hugo mod get github.com/jpanther/congo/v2@v2.12.2 - Re-vendor the module:
./scripts/hugo.sh mod vendor - Re-run the build:
./scripts/hugo.sh --minify --buildFuture
Creating Content
New Posts
hugo new content posts/YYYY-MM-DD-post-name.md
A new post will be created with the following template:
---
title: "Post Name"
date: YYYY-MM-DDT00:00:00+00:00
draft: true
description: ""
tags: []
categories: []
series: []
---
# Post Name
## Introduction
<!-- Write your introduction here -->
## Main Content
<!-- Main content starts here -->
## Conclusion
<!-- Wrap up your post here -->
Draft Post Guidelines
File naming: Use the format
YYYY-MM-DD-post-name.md(kebab-case)Frontmatter:
title: Clear, descriptive title in title casedate: Publication date in ISO formatdraft: Set totrueuntil ready to publishdescription: 1-2 sentences summarising the post (used for SEO)tags: Array of relevant keywords (use existing tags where possible)categories: Optional grouping (e.g., "Tutorials", "Cloud Computing")series: Optional series name if part of a multi-post series
Content Structure:
- Use Markdown for content with
##(H2) and###(H3) for sections - Store images in
/static/images/YYYY/MM/directory - Reference images with absolute paths (e.g.,
/images/2025/04/example.png) - Use UK English spelling and grammar
- Use Markdown for content with
Testing:
- Preview with
hugo server -Dto see drafts locally - Drafts will not be published to the live site
- Preview with
New Projects
hugo new content projects/project-name/index.md
Create a project directory to include additional assets like images and thumbnails.
Maintenance Scripts
The repository includes several maintenance scripts in the scripts/ directory:
fix_backticks.py- Fixes inline code formatting issues in markdown filesfix_twitter_links.py- Updates Twitter links from HTTP to HTTPSfix_links.py- Template for fixing various broken links
To run a script:
python3 -m venv venv # Create virtual environment (first time only)
source venv/bin/activate # Activate virtual environment
pip3 install -r requirements.txt # Install dependencies (first time only)
python3 scripts/script_name.py # Run the script
Building for Production
./scripts/hugo.sh --minify --buildFuture
This will generate the static site in the public directory.
Deployment
The site is automatically deployed to GitHub Pages using GitHub Actions when changes are pushed to the main branch. The workflow:
- Builds the Hugo site using Hugo modules
- Deploys the generated files to the gh-pages branch
- GitHub Pages then serves the content from the gh-pages branch
To configure GitHub Pages:
- Go to repository Settings > Pages
- Set the source to "Deploy from a branch"
- Select the "gh-pages" branch and "/" (root) folder
- Save the settings
Note: The site uses two workflows - "Deploy Hugo site" builds the site, and "pages-build-deployment" handles the GitHub Pages publishing.
License
My blog content, posts, etc are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Similar other
MiroFish
Swarm intelligence engine for future prediction — simulates multi-agent interactions to deduce outcomes
paperclip
AI agent orchestration server for autonomous companies — manages teams of bots, goals, budgets, and governance
learn-claude-code
Agent harness engineering tutorial — build the environment and tools for real LLM agents, inspired by Claude Code
LightRAG
Lightweight RAG framework — builds simple, fast, and scalable retrieval-augmented generation systems for LLMs
