Built an Astro CMS Admin in Go

By Joshua Pack / Programming, Blog, Tech

I recently wanted to build a lightweight tool tailored specifically to my own workflow using Go (Golang). I’ve really enjoyed working with Go, it’s fast, and building web apps with it alongside Gin and Vue is a smooth experience. One of my favorite aspects is compiling the entire application (Vue frontend included) into a single executable binary. The result is a rock-solid, multi-threaded app with minimal CPU and memory footprints.

To kick things off, I built an admin CMS panel for my Astro blog. My main goal was simple: I wanted to write and published new posts without needing to open an IDE on my laptop. While I’ll still use my computer for theme updates and non-blog pages, this tool handles my core publishing needs, and serves as a great proof of concept for bigger projects down the road.

In fact, this is the very first post published through the new admin system!

Here is how my new workflow looks:

  1. Drafting: I start writing in Google Docs or Obsidian to get my initial thoughts down.
  2. Refining: I use AI to check grammar, polish specific sections, and generate optimized tags, categories, and SEO metadata.
  3. Formatting: AI converts the finished text into Markdown format.
  4. Publishing: I copy the Markdown into my Astro CMS, upload a cover image, and hit publish.

Behind the scenes, hitting “Publish” commits the new post directly through Git, triggering an automated workflow that builds and deploys the site.

It makes writing from my iPad entirely seamless, giving me the freedom to publish anywhere without lugging my laptop along. People often ask why I don’t just use WordPress, but this setup is significantly faster, consumes fewer resources, and remains much more secure.

I initially planned to open-source the project as I usually do with my work. However, after sharing a few preview screenshots on Threads, I was met with toxic comments dismissing it as “AI slop.” Because of that response, I’ve decided to keep the codebase private for now and may eventually evolve it into a paid SaaS blog builder.

~Joshua

Tags:Golang, Astro, Cms, Web-development, Workflow, Automation, Cicd, Markdown, Static-site-generator

Previous Post:
YouTube Moving the Goalposts: Why the 8,000 Watch Hour Cap Changes the Creator Grind
Next Post:
Ditching the IDE: Streamlining My Astro Blog Workflow
Back to Top ↑