
Sometimes I want to publish a quick blog post without opening an IDE, creating a new .md or .mdx file, and committing it to the repo. But right now, with how this blog is set up on Astro, that’s the only way to do it. While there are plugins that attempt to streamline the process, it’s still a hassle.
I looked into headless CMS options that integrate with Astro:
- PagesCMS
- TinaCMS
- CloudCannon
While each of these tools is great in its own right, they all have limitations that don’t quite fit my workflow. PagesCMS comes closest to what I want, but its file size limits (due to directly interacting with the GitHub API) are a drawback for me.
So, I’ve decided to build my own custom Markdown admin backend for this blog. A simple, dedicated portal where I can log in and publish on the fly.
Key Technical Choices
1. Authentication with Firebase Auth
For authentication, I’m keeping it simple and secure with Firebase Authentication. Since I’m the only author, I can restrict access directly to my email address. While there are countless ways to handle auth, this is the quickest and most effective route for my setup.
2. Backend Powered by Go 🐹
As for the backend language, I’m building it in Go. Here’s why:
- Familiarity: I’m already familiar with it.
- Scope: The feature scope is small and straightforward.
- Simplicity: Deploying a single binary makes management effortless.
I briefly debated using Rust, and I do have another software project in mind for Rust down the road, but Go feels like the right choice to get this off the ground quickly.
What’s Next?
I haven’t decided whether I’ll open-source this project yet, so I’m keeping it closed-source for now. I’ll share another update once I’ve made more progress!
~ Joshua
Tags:Astro, Go, Golang, Firebase, Firebase-auth, Cms, Markdown, Web-development, Workflow, Productivity, Open-sourceBuilt an Astro CMS Admin in Go



