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:¶
- Create a private repo where Python scripts fetch and format dynamic content.
- Use GitHub Actions with cron syntax to run scripts on a schedule (e.g., daily).
- Scripts generate updated Markdown or JSON files and push them to the public Hugo repo.
- GitHub Pages auto-deploys the updated site.
🔗 Inspired by this GitHub Actions tutorial:
CI/CD 實戰指南(二)GitHub Actions 與 Self-hosted Runner 使用與建置大全

🧱 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!
- GitHub: @1daniel3333
- Medium: @p123456dan.mse99
Comments
Loading comments…
Leave a Comment