GitHub CMS

GitHub is
your database.

md0 CMS connects directly to your GitHub repository. Edit markdown files visually. Every save auto-commits. No deploy step, no code to write.

Why GitHub

Why GitHub as a CMS?

Version History Built-In

Every content change is a Git commit, so you can see who changed what and revert instantly.

No Vendor Lock-In

Your content lives in your repo as plain markdown, no lock-in. Learn more →

Works with GitHub Pages

GitHub Pages deploys from your repo automatically. Push a commit through md0 CMS and GitHub Actions or Pages rebuilds your site immediately, using the same build workflow your repo already runs for code changes. There is no second deploy pipeline to maintain alongside it.

Team Collaboration via PRs

Content editors can work on a feature branch instead of committing straight to main. Developers review the diff in a normal GitHub pull request, leave comments on specific lines, and merge when the content is ready. Your existing GitHub review workflow applies to markdown edits the same way it applies to code.

The connection

How it connects

No webhooks to wire up, no API keys to rotate. Three steps, start to finish.

1

OAuth Login

Click "Connect GitHub" and authorize md0 CMS via GitHub OAuth. Grant repository read/write access. No personal access tokens to create or rotate.

2

Select Repo and Branch

Choose from your GitHub repositories. Pick the branch you want to manage content on, typically main or a dedicated content branch.

3

Define Collections

Map path glob patterns to content types. Set frontmatter schemas. Start editing. md0 CMS reads and writes files directly via the GitHub API.

Nothing added to your repo.

md0 CMS adds no config files, no cms.json, no .cms/ folder. Your repository stays exactly as it is. The CMS configuration lives in md0, not in your codebase.

Content types

What you can edit

Markdown and MDX Files

Any .md or .mdx file in your repository. Blog posts, documentation pages, landing page content, changelogs.

# Example paths

content/blog/*.md

docs/**/*.mdx

pages/about.md

Frontmatter Fields

Define a schema per collection. md0 CMS renders a structured form for frontmatter fields: title, date, tags, author, category, custom fields.

---

title: My Post

date: 2025-01-01

tags: [cms, github]

---

Collections Map to Path Patterns

A collection is a name plus a glob pattern pointing to files in your repo. Create as many collections as your site needs. Each collection can have its own frontmatter schema, naming convention, and default values.

Blog Posts

content/posts/**/*.md

Docs Pages

docs/**/*.mdx

Team Members

data/team/*.md

GitHub Pages

Works with GitHub Pages

GitHub Pages deploys automatically whenever you push to your repository. When you save content in md0 CMS, it commits to your repo, which triggers a new GitHub Pages build. Your site is updated without any manual deploy step.

This same flow works with any SSG deployed via GitHub Actions: Jekyll, Hugo, Astro, Eleventy. The commit md0 CMS creates is all GitHub Actions needs to kick off a build.

Write in md0 CMS
Auto-commit to GitHub
GitHub Actions runs
Site is live
v1.4
Current Version
Free
Public Repos
Zero
Config Files Added

Your GitHub repo
deserves a CMS.

Connect your repository in under 2 minutes. Edit markdown visually. Free for public repos.

No credit card required · 2-minute setup · Free for public repos