The Workflow: How I post to this Blog
Now that the CI/CD is live, I don't need to touch a web UI or run manual build scripts. Everything is handled through a pure Git workflow.
1. Structure
All my content lives in the content/ directory. Zola uses "Front Matter" (the +++ TOML block) at the start of each file to handle metadata.
2. Creating a Post
To create a post, I just create a new markdown file locally:
touch content/my-new-post.md
I add the headers at the top:
+++
title = "My New Post"
date = 2026-03-25
[taxonomies]
tags = ["idea", "tutorial"]
+++
Your content goes here...3. Deployment
Once I'm happy with the content, I just push to main. This triggers the Forgejo runner, which pulls the keys from OpenBao and syncs the site to Garage.
git add content/my-new-post.md
git commit -m "content: new post about X"
git push origin main
I can track the build progress at git.jaf.sh/jaf-sh/blog/actions. If the green checkmark appears, the site is live.
Read more