GITHUB IS
YOUR DATABASE.
md0 CMS connects directly to your GitHub repository. Edit markdown files visually. Every save auto-commits. No deploy step. No configuration files added to your repo.
Why GitHub as a CMS?
Version History Built-In
Every content change is a Git commit. See exactly who changed what and when. Revert to any previous version instantly. No extra tooling or paid history add-on.
No Vendor Lock-In
Your content lives in your GitHub repository as plain markdown. Stop using md0 CMS and your files stay exactly where they are. No export, no migration.
Works with GitHub Pages
GitHub Pages deploys from your repo automatically. Push a commit (via md0 CMS) and GitHub Actions or Pages rebuilds your site. No separate deploy pipeline needed.
Team Collaboration via PRs
Content editors write drafts. Developers review pull requests. Merge when ready. Your existing GitHub collaboration workflow applies to content too.
How it connects
No webhooks. No API keys. No configuration files added to your repo. Just three steps.
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.
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.
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.
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
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.
Also useful
GitHub CMS for Next.js →
Connect your Next.js repo. Edit MDX and markdown. Auto-commits trigger rebuilds.
GitHub CMS for Hugo →
Hugo reads from your content/ directory. md0 CMS writes there. Zero integration work.
GitHub CMS for Jekyll →
Jekyll on GitHub Pages. md0 CMS manages your _posts. Native GitHub Pages support.
Forestry.io Alternative →
Forestry was also GitHub-native. It shut down in 2023. md0 CMS is the modern replacement.
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