Hugo & Blog GitHub Personal Website Automation

Build an Auto-Updating Personal Static Website with Hugo + GitHub Actions

Build an Auto-Updating Personal Static Website with Hugo + GitHub Actions

Inspired by this article, I was introduced to Hugo and GitHub Pages. I’ve always wanted to build a personal website — not just a blog, but one that updates itself regularly with data I collect or subscribe to. This post documents how I combined Cursor, Hugo, GitHub Actions, and GitHub Pages to build an auto-updating personal website.


🥅 Project Goal

Create a clean, Hugo-based personal website and use GitHub Actions as a scheduling engine (like Linux crontab) to regularly run Python scripts for data crawling or dynamic updates. Then, automatically push the new content to GitHub Pages for instant deployment.


🛠 Development Workflow

Step 1: Develop with Cursor and Hugo

  • Used Cursor, an AI-enhanced IDE (like VSCode + ChatGPT), for all development.
  • Initialized site using Hugo.
  • Fetched and customized a theme with prompts.
  • Modified layout and content to fit my needs.
  • Tested the site locally.

Step 2: Deploy via GitHub Pages

  • Hosted the finished Hugo site using GitHub Pages.

🔁 Making Static Sites Auto-Update

Since Hugo generates static pages, it doesn’t update dynamically. I wanted some sections — like data subscriptions, analytics, or newsletters — to update regularly.

My Solution:

  1. Create a private repo where Python scripts fetch and format dynamic content.
  2. Use GitHub Actions with cron syntax to run scripts on a schedule (e.g., daily).
  3. Scripts generate updated Markdown or JSON files and push them to the public Hugo repo.
  4. GitHub Pages auto-deploys the updated site.

🔗 Inspired by this GitHub Actions tutorial:
CI/CD 實戰指南(二)GitHub Actions 與 Self-hosted Runner 使用與建置大全

Workflow


🧱 Architecture Overview

Component Purpose
Cursor Develop and customize Hugo content with AI help
Hugo Generate the site and manage markdown/blog files
GitHub Pages Host the site statically
GitHub Actions Automate content generation and deployment
Python (Optional) Fetch and format external data

📝 Final Thoughts

Although the concept is simple, this project integrates:

  • Static site generation
  • Dynamic data updates
  • Scheduled automation
  • CI/CD concepts

It taught me how to use GitHub Actions not only for deployment, but as a programmable cron server.

Future Plans:

  • Add a comment system (e.g., Disqus or Giscus)
  • Track update logs from GitHub Actions
  • Add APIs or data visualizations

🙏 Acknowledgments

Special thanks to the following articles:

  • From Medium to GitHub — by kucw
  • CI/CD + GitHub Actions Guide — by zhgchg

If you found this useful, feel free to fork the repo or share your own ideas!

Comments

Loading comments…

Leave a Comment