A straightforward blog setup that connects Decap CMS with Webstudio. It saves everything to Git, so your content stays versioned and clean. Non-technical users can log in, write posts, and publish — all through a simple editor.
Credit: This project was inspired by minimal-decap-cms by walmello.
| Features | How It Works |
|---|---|
| Easy blog editor | Write posts in a simple, doc-style editor |
| Feature images for posts | Add images to your blog posts |
| No coding needed | Formatting and layout handled automatically |
| Connects to Webstudio | Posts show up on your Webstudio site |
| Multi-platform hosting | Deploy to Netlify or Cloudflare Pages |
| Iframe embedding ready | CMS at /admin/cms/ for seamless integration |
| Works on mobile too | Update content from anywhere |
Choose the option that works best for you:
Why fork first? Forking gives you your own copy of the repository, allowing you to receive updates, maintain version history, and fully control your content through Git.
- Click the "Fork" button at the top-right of this repository
- Wait for the forking process to complete
- Go to Netlify
- Click "Add new site" → "Import an existing project"
- Select GitHub and choose your forked repository
- In the deployment settings, verify these are set:
- Build command:
npm run build - Publish directory:
public
- Build command:
- Click "Deploy site"
- Make sure the
GITHUB_BRANCHenvironment variable matches the branch name for each deployment Site → settings > Build & deploy > Continuous deployment
Note: This option will clone the repository to your GitHub account, but you will not receive updates.
Click the button below to deploy directly to Netlify:
During setup:
- Follow the prompts to connect to GitHub
- Netlify will create a copy of the repository in your GitHub account
- In the deployment settings, verify these are set:
- Build command:
npm run build - Publish directory:
public
- Build command:
- Click "Deploy site"
To allow non-technical clients to manage blog content through Decap CMS:
- Have your client create a GitHub account (they will never need to access it again after the initial setup).
- Add them as a collaborator to their forked repo (the one connected to their Netlify project).
- Invite that same email through Netlify Identity for CMS access.
- Once accepted, they can log in at
/adminand edit content directly.- Content changes will be committed to Git automatically.
⚠️ Without GitHub access, the client will see a “You don’t have sufficient permissions” error in DecapCMS.
Important: The email you invite to Netlify Identity must also have write access to the connected GitHub repo, or publishing will fail.
- In your Netlify dashboard, go to "Site settings" > "Environment variables"
- Add these variables (replace with your info):
# Repository configuration
GITHUB_BRANCH=main
# Site information (use quotes for titles with spaces)
SITE_TITLE="My Awesome Blog"
SITE_URL=https://YOUR-NETLIFY-SITE.netlify.app
# Media and content settings
MEDIA_FOLDER=images/uploads
PUBLIC_FOLDER=/images/uploads
CONTENT_FOLDER=content/blog
# CMS configuration
# Options: 'editorial_workflow', 'simple', or leave empty (defaults to 'simple')
PUBLISH_MODE=simpleNote: Netlify Identity is officially deprecated by Netlify, but still functions for existing sites. While we use it here for simplicity, be aware that Netlify recommends alternatives like Auth0 for new projects. For this template, Identity still works fine.
- On your Netlify site dashboard, go to "Site settings" > "Identity"
- Click "Enable Identity"
- Under "Registration preferences", select "Invite only"
- Under "Services" > "Git Gateway", click "Enable Git Gateway"
- Go to the "Identity" tab and click "Invite users"
- Enter your email address and click "Send"
- Check your email and accept the invitation
Decap CMS supports different publishing workflows that can be configured using the PUBLISH_MODE environment variable:
-
Editorial Workflow (
PUBLISH_MODE=editorial_workflow): Enables a workflow with draft, review, and publish states. This is useful for teams that need an approval process before content goes live. -
Simple (
PUBLISH_MODE=simple): Content is published immediately when saved, without going through a review process. -
Default (empty or not set): Same as 'simple' - direct publishing without a workflow.
You can configure the publish mode by setting the PUBLISH_MODE environment variable in your Netlify environment variables or in your local .env file.
This template is designed to support multiple customers with isolated content while receiving template updates:
- Main branch contains the template with sample data
- Customer branches contain customer-specific content
- Protected directories (
/content/and/images/uploads/) prevent merge conflicts .gitattributesfile ensures customer content is never overwritten during updates
- Fork this repository
- Create a customer-specific branch:
git checkout -b customer-yourname - Configure Netlify to deploy from your customer branch
- Customize the sample content or start fresh
- All your content changes are isolated to your branch
When updates are available in the original template:
# Add upstream remote (one time)
git remote add upstream https://github.com/null1979/DecapCMS-Webstudio.git
# Sync updates (periodic)
git fetch upstream
git checkout customer-yourname
git merge upstream/main
git pushYour content in /content/ and /images/uploads/ will be preserved during merges.
For detailed instructions, see Fork & Sync Workflow Guide.
This template supports deployment to multiple platforms:
- Built-in authentication with Netlify Identity
- Automatic Git Gateway setup
- Serverless functions for dynamic configuration
- See setup instructions above
- Better global performance with Cloudflare CDN
- Cloudflare Access for authentication and protection
- Support for
/admin/*path protection - See Cloudflare Pages Setup Guide
The CMS is available at multiple endpoints for flexibility:
- Primary (New):
/admin/cms/- Optimized for iframe embedding - Legacy:
/admin/- Original location, maintained for backwards compatibility - Local Testing:
/admin/cms/local.htmlor/admin/local.html
For more detailed instructions and guides, please refer to the following documentation:
- Cloudflare Pages Setup Guide - Deploy to Cloudflare Pages
- Fork & Sync Workflow Guide - Detailed guide for managing customer forks
- Content Management Guide - How to manage blog content
- Webstudio Integration Guide - Connecting to Webstudio
- Troubleshooting Guide - Common issues and solutions
If you need assistance, these resources might help:
- Decap CMS Documentation
- Netlify Documentation
- Webstudio Documentation - See the Resource Variables section
- Webstudio CMS Integration