FOR BLOGGING

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 BLOGGING

The 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

1

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.

2

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.

3

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.

4

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.

5

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.

Next.js
Astro
Hugo
Jekyll
Gatsby
Eleventy

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.

START YOUR BLOG

Free for public repos. Your posts. Your Git repo. Zero lock-in.

START FREE