Introduction
Decap CMS (formerly Netlify CMS) is a Git-based headless content management system that gives editors a friendly web UI for managing content stored as files in a Git repository. It works with any static site generator and does not require a database, since all content is committed directly to the repo.
What Decap CMS Does
- Provides a browser-based editorial UI with rich text editing, media uploads, and live preview
- Stores all content as flat files (Markdown, YAML, JSON) in your Git repository
- Supports custom content types through a declarative YAML configuration schema
- Integrates authentication via GitHub, GitLab, Bitbucket OAuth, or a custom backend
- Enables editorial workflows with draft, review, and publish states tracked as Git branches and pull requests
Architecture Overview
Decap CMS is a single-page React application that runs entirely in the browser. It communicates with Git hosting APIs (GitHub, GitLab, Bitbucket) to read and write files. Content types are defined in a config.yml file that specifies collections, fields, and widgets. When an editor saves content, the CMS creates a commit (or pull request in editorial workflow mode) on the configured branch. There is no server component beyond the Git host itself.
Self-Hosting & Configuration
- Add the CMS by placing an
admin/index.htmlandadmin/config.ymlin your static site - Define collections in
config.ymlwith folder paths, fields, and widget types (string, markdown, image, list, etc.) - Configure the
backendsection to point at your Git provider and repository - Set up authentication using the Git Gateway proxy, OAuth applications, or Netlify Identity
- Customize the editor UI with custom widgets, preview templates, and CSS
Key Features
- Git-native storage means all content changes are version-controlled with full commit history
- No database or server to maintain; the CMS is a static JavaScript bundle
- Editorial workflow enables content staging with draft/review/ready states as pull requests
- Media library supports image uploads to the repo or external services like Cloudinary
- Extensible widget system lets developers build custom field types for structured content
Comparison with Similar Tools
- TinaCMS — also Git-backed but offers visual inline editing on the live page; Decap CMS uses a separate admin panel
- Strapi — server-based headless CMS with a database backend; Decap CMS is serverless and Git-native
- Sanity — hosted real-time CMS with a custom query language; Decap CMS is self-hosted and stores data as files
- Keystatic — newer Git-based CMS from the Thinkmill team with TypeScript-first config; Decap CMS has wider adoption and more community plugins
FAQ
Q: What happened to Netlify CMS? A: Netlify CMS was renamed to Decap CMS in early 2023 when it transitioned to community-driven governance. The codebase and functionality are the same; only the name and npm package changed.
Q: Which static site generators work with Decap CMS? A: Any generator that reads Markdown or data files from a folder: Hugo, Gatsby, Eleventy, Next.js, Jekyll, Astro, and more. The CMS is generator-agnostic.
Q: Does Decap CMS support real-time collaboration? A: Not natively. Two editors can work on different content files simultaneously since each save creates a separate Git commit, but there is no live co-editing within a single document.
Q: Can I use Decap CMS without Netlify hosting? A: Yes. Decap CMS works with any hosting provider. You only need a Git backend (GitHub, GitLab, or Bitbucket) and an authentication mechanism like an OAuth proxy or Git Gateway.