Your Own CMS on GitHub: How Copilot Helps Write, Publish, and Announce Content
In the era of vibe coding, you don't need to buy expensive platforms or set up monstrous CMSs. A GitHub repository, a few GitHub Actions, and Copilot are enough - and you have a ready-made autopilot for content marketing.
Here's how it works for us at iconicompany.
Idea: GitHub as a CMS
Classic CMSs (WordPress, Contentful, Strapi) solve the problem of storing and publishing content, but they drag along infrastructure, dependencies, and cost. What if we store content where the code already lives - in a Git repository?
The iconicompany/icontent repository is our CMS:
- Articles are stored as
.mdxfiles in thecontent/ru/blog/andcontent/en/blog/folders - Any change in the
mainbranch triggers GitHub Actions - Actions publishes content, translates it into English, and sends out announcements
Copilot, in turn, acts as an editor and author: it helps write articles directly in the browser or IDE via skills, knows the repository structure, and frontmatter formatting.
Pipeline: From Idea to Telegram Post
The entire process looks like this:
- Copilot writes a post - via a skill or directly in the IDE based on a brief
- The file goes into
content/ru/blog/- a regular commit tomain - GitHub Actions runs automatically - a trigger on changes in
content/**is activated - Auto-cleanup - smart quotes, em dashes, and other AI artifacts (
"",--,...) are removed - Automatic translation to English - the LLM translates the post and places it in
content/en/blog/ - Site synchronization - a webhook is invoked, and the site pulls the new content
- Announcement - the LLM generates a short announcement (2-4 sentences), which goes to Telegram and Max
The entire pipeline is described in a single file sync.yml.