THE GITHUB
BLOG CMS
Every post is a markdown file in your GitHub repo. Writers get a visual editor. Developers keep their workflow. No vendor, no database, no lock-in.
START BLOGGINGThe Problem
Markdown Blogs Have a Writer Problem
How Most Developer Blogs Are Built
The typical developer blog runs on Next.js, Astro, Hugo, or Jekyll with markdown files stored in a GitHub repository. The setup is clean: posts are plain text, history is Git, deployment is automated via Vercel or Netlify, and the whole thing costs almost nothing to run. Developers love this stack.
Where It Breaks Down
Non-developer writers cannot edit raw markdown files in a GitHub repository. A guest writer who wants to submit a post needs to clone the repo, understand frontmatter syntax, write markdown, open a pull request, and wait for review. Most guest writers drop off at step one. Even technical writers who know markdown find the process slow when they want to publish quickly. The result is either a blog that only the developer updates, or a blog that goes quiet.
What md0 Adds
md0 CMS connects to your existing GitHub repository and puts a visual editing interface on top of your markdown files. Nothing about your blog stack changes. Next.js still reads the same files. Hugo still builds from the same directory. The difference is that writers now have a browser-based editor that looks like a document tool, not a code editor.
Built for Both Writers and Developers
For writers
- Visual WYSIWYG editor, no markdown syntax to learn
- Form-based frontmatter for title, date, tags, categories
- Publish by saving, commits to GitHub automatically
- Web-based, edit from any browser, any device
- Draft posts by setting status: draft in frontmatter
For developers
- Posts are plain .md files, your SSG reads them as always
- Full Git history for every post edit
- Schema builder enforces consistent frontmatter structure
- Keep editing locally in VS Code if you prefer, both work
- URLs are controlled by your SSG, md0 does not touch them
Feature Breakdown
What Bloggers Actually Need
Writing Experience
The md0 editor looks like a document tool. Bold, italic, headings, lists, links, images, and code blocks are all accessible through a toolbar. Writers type prose and click buttons; they never need to type a single asterisk or hash. The output is standard GitHub-flavored markdown, so it renders correctly in any static site generator.
Collection View
The collection browser shows all posts in your blog directory sorted by date, with title, status, and publish date visible at a glance. Writers can scan the full archive, find old posts, and open them for editing without touching the filesystem. No more digging through nested folders in a code editor.
Image Handling
Drag and drop an image into the editor and md0 uploads it directly to your GitHub repository under a path you choose, such as public/images/posts/. The image reference in the markdown file updates automatically. Your SSG serves the image as a static asset. No external image host required.
Draft Workflow
Set status: draft in a post's frontmatter and your SSG skips it during the build. The writer saves freely without worrying about accidentally publishing. When the post is ready, change the status field to published and save. md0 commits the change and the next build picks it up. The draft/publish toggle is a frontmatter field, not a CMS-level concept locked into a database.
URL Structure
md0 does not control your blog's URL structure. Your static site generator handles permalinks based on file paths and frontmatter slugs exactly as it always has. If Next.js uses the file path as the URL, that still works. If Hugo uses a slug frontmatter field, that still works. md0 does not add routing logic on top of your existing setup.
Audience
Who This Is For
INDIVIDUAL BLOGGERS
You built your blog yourself, you know how it works, but you want a better writing interface than VS Code. md0 gives you a clean editor without forcing you to change your stack.
DEVELOPER BLOGS WITH GUEST WRITERS
You write technical content but occasionally want a designer, marketer, or community member to contribute a post. They cannot open VS Code and write raw markdown. md0 gives them a real editor.
TEAMS WHERE DEVS BUILD AND WRITERS OWN CONTENT
The developer sets up the blog once, configures md0, and steps back. Writers add posts weekly without filing tickets or asking for help. Both sides stay in their lane.
AGENCIES MANAGING BLOGS FOR CLIENTS
You build a Next.js or Astro blog for a client. The client needs to update it themselves without calling you. Connect md0, show them the editor, and your support load drops.
Feature Checklist
Five Things Every Blogger Wants
A writing interface that does not get in the way
md0 uses a clean visual editor. No markdown syntax visible in the writing area. Formatting is applied with toolbar clicks. The focus is on the text.
Easy image uploads
Drag an image into the editor. md0 uploads it to your GitHub repo and inserts the reference. No third-party image hosting account required.
Draft support so posts are not published before they are ready
Set status: draft in the frontmatter form. Your SSG skips draft posts. Change to published when ready. One field, no extra system.
A way to see all posts at once
The collection view lists every post in your blog directory with title, date, and status. Filter, search, and open any post with one click.
No dependency on a proprietary platform
Your posts are markdown files in your own GitHub repository. If you stop using md0, your blog continues to work exactly as before. No export needed.
Works With Your Blog Stack
Any static site generator that reads markdown files from a GitHub repository works with md0 CMS.
Setup takes 2 minutes
Go to cms.md0.io, sign in with GitHub, select your blog repository, and point md0 at your posts directory (for example, content/blog/ or posts/). md0 detects your existing markdown files immediately. No config file to write. No schema to hand-code. Define your frontmatter fields in the visual schema builder and start writing.