Decap CMS
Open-source Git-based headless CMS for static site generators with a clean editorial interface.
Why consider Decap CMS?
Decap CMS is an open-source, Git-based content management system for static sites. It provides a clean editorial UI that commits content changes directly to your Git repository.
Learn Decap CMS by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide10 sections
What is Decap CMS?
Decap CMS (formerly Netlify CMS) is an open-source, Git-based headless CMS for static site generators, developed with JavaScript and React. It operates as a browser-embedded content editor that commits content changes directly to your Git repository (GitHub, GitLab, Bitbucket), making it ideal for JAMstack and static site workflows.
Decap CMS renders a clean, non-technical editorial dashboard inside any web page, allowing content editors to create and modify Markdown, YAML, and JSON files without touching Git commands. Every save action creates a real Git commit, giving content a full version history.
Who Is It For?
- JAMstack Developers: Adding a non-technical editorial interface to Next.js, Hugo, Gatsby, Astro, Eleventy, or Jekyll sites.
- Technical Writers & Editors: Managing documentation or blog content through a visual interface while maintaining Git-based version control.
- Small Teams: Collaborating on static website content without paying for a commercial CMS subscription.
Key Features
- Git-based content storage: Every save is a Git commit, providing complete content version history.
- Framework-agnostic: Works with Hugo, Next.js, Gatsby, Astro, Jekyll, Eleventy, and any static site generator.
- Editorial workflow: Draft, review, and approval states for content before publishing.
- Media library management: Upload and manage images with cloud storage providers.
- Customizable widget library: Text, Markdown, images, datetime, lists, objects, and custom widgets.
Adding Decap CMS to a Hugo Site
Add Decap CMS to your Hugo site's static directory:
<!-- static/admin/index.html --><!doctype html><html><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Content Manager</title></head><body> <!-- Decap CMS renders in this DOM element --> <script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script></body></html>Create the configuration file:
# static/admin/config.ymlbackend: name: github repo: your-org/your-site-repo branch: mainmedia_folder: "static/uploads"public_folder: "/uploads"collections: - name: "posts" label: "Blog Posts" folder: "content/posts" create: true fields: - { label: "Title", name: "title", widget: "string" } - { label: "Date", name: "date", widget: "datetime" } - { label: "Body", name: "body", widget: "markdown" }Practical Use Cases
1. Marketing Team Blog Management
A marketing team edits blog posts through the Decap CMS dashboard; changes trigger a Netlify deploy preview, and editors review the rendered article before merging.
2. Documentation Site Content Updates
A technical writer updates API documentation sections through the editorial interface; each save auto-creates a Git commit with the change message.
3. Multi-Author Site with Editorial Workflow
Multiple editors draft articles in the "In Review" state; a senior editor approves drafts and merges them to main, triggering the production static site build.
Troubleshooting and Limitations
- OAuth GitHub App Configuration: Decap CMS requires a registered GitHub OAuth App to authenticate editors; configure the OAuth provider credentials in your backend settings or use Netlify's built-in authentication.
- Large Media Files: For repositories with many images, use Git LFS or a cloud media backend (Cloudinary, Uploadcare) to prevent repository size bloat.
Official Resources
- Official Website: https://decapcms.org
- GitHub Repository: https://github.com/decaporg/decap-cms
- Documentation: https://decapcms.org/docs
Related tools
More options with a similar category or technology profile.
diskus
Minimal, fast alternative to du -sh written in Rust using multi-threaded directory traversal.
peco
Simplistic interactive filtering tool for Unix pipelines, process lists, and file trees.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
Freeze
Generate beautiful image screenshots and SVGs of code snippets and terminal outputs.