Installing Decap CMS with a Git backend: a step-by-step guide

The editorial team is waiting for edits, and the developers' backlog is not clearing—content goes stale faster than it ships. We set up Decap CMS installation with a Git backend as a turnkey solution: editors edit texts themselves, and builds remain predictable. Edits no longer depend on engineer availability, and material ships several times faster.

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Frequently Asked Questions

Why installing Decap CMS runs into manual content editing

The site is already built from a repository: content sits next to templates as separate markup files, and publishing is triggered by a commit.

As long as texts are not touched, the scheme works — the build is reproducible, the change history is complete, and rolling back to any version takes minutes.

But as soon as you change the headline on the home page or refine wording in a service card, the edit goes into the developer's task queue.

Then the manual cycle begins: a task in the tracker, a branch, approval, build, staging check, and only then deployment. A minor edit loses a day or two; wording approval takes noticeably longer.

During that time, the text is edited in another place too, and the content in the Git repository diverges from what visitors actually see; the discrepancy surfaces in production when someone sends a screenshot with an outdated line.

Installing Decap CMS closes exactly this gap. The content management panel reads the field structure from the configuration and saves edits directly to the repository as a separate commit — the editor works with forms, not files, and cannot accidentally break the template.

Edits without a developer do not cancel review: the branch, history, and rollback remain in place, and manual publication of edits becomes one step instead of a chain of approvals.

We'll break down how this works in practice — from describing collections and fields to the build that runs after every commit.

What the Git backend provides: edit speed and predictable builds

Decap CMS stores content not in a database but in the repository: each entry is markdown or JSON with front matter, an editor's change becomes a commit, and publication becomes a branch merge and site rebuild.

This kind of Git backend for a CMS removes the "database → API → render" layer, so the final HTML remains static, and all content goes through the same review and checks as code. Below are three effects visible in metrics.

Edit publication time: minutes instead of hours

The content manager edits text in the visual editor, the edit goes to a separate branch, and after the merge the build starts automatically.

The incremental cache rebuilds only the affected pages, not the entire site, so the median from clicking "save" to the text appearing on the production domain is measured in minutes.

Where there is no draft environment, the branch is shown in preview — approval does not block publication.

Content version history and rollback rate

Each edit is a commit with an author, message, and exact diff. Returning to previous wording is done with a single revision, without restoring a database backup and without downtime.

According to industry measurements, for teams that moved editing into the repository, the share of publications that have to be rolled back manually falls severalfold — because rollback stops being an operation on data and becomes an operation in history.

Site build after an edit: errors are visible before release

The build is a gateway: validation of front matter, broken internal links, duplicate headings, and menu assembly runs before deployment. A failed build is not published, production stays on the previous version, and the author receives a log indicating the line.

As a result, the share of unsuccessful deployments reaching visitors decreases, and the number of "silent" navigation failures after content edits drops to isolated cases.

Connection options: local run, build server, cloud

The panel with a Git backend is a set of static files that read and write content directly to the repository: every save becomes a commit to a branch.

Therefore, the connection mode determines three things at once — who gets access to edits, how a change is validated, and when it reaches production.

Decap CMS supports all three schemes without rewriting content: the backend section in the configuration changes, while markdown files stay where they are.

The modes do not compete; they cover different stages: local run — configuring the collection schema, build server — your own domain and private publication rules, cloud — collaborative work of several editors. Below is a comparison by the criteria that most often break the release of a material.

Option When it fits Limitations
Local panel run Initial setup of fields and collections, schema debugging, one-time import of old content Requires an installed environment and write access to the repository; editors without repository access cannot work, and authorization is not verified
Site build server Your own domain, closed environment, custom rules for validating edits and editor roles The server must be maintained and updated; you configure login, backups, and commit-event hooks yourself
Cloud static build Multiple editors, preview of individual branches, automatic publication after merge Settings live outside the repository, platform build limits apply, and login is tied to its provider

In practice, switching between modes means editing one configuration block and migrating access rules. Content, collection structure, and commit history are preserved, so it is safe to start with a local run and later move to a server or cloud.

Installing and connecting the Git backend: stages of work

In Decap CMS, the Git backend is the most predictable option for a content site: edits go to the repository as regular commits, so history, approval, and rollback work with the same tools as for code. We structure the stages so that each ends with a concrete check, not hope.

  1. Content structure audit. We examine existing pages and entry types, mark repeated blocks. We check: what will become a collection and what will be a single file.
  2. Content collection setup. We describe collections, fields, and the folder for media files. We check: required fields are marked, nested lists do not break the schema.
  3. Git backend connection. We specify the repository provider, working branch, and content directory. We check: a test edit creates a commit in the desired branch, not in the main one.
  4. Editorial access rights. We configure roles: an author works with drafts, a senior editor confirms publication. We check: the author cannot write directly to the main branch.
  5. Build and media. We run a build with real edits and uploaded images. We check: the file goes to the correct folder, the path in the content is correct, and the build does not fail.
  6. Publication check. We run the full cycle: draft → confirmation → build → page. We check: changes are visible on the site, and reverting the commit returns the previous version.
  7. Handover of editorial access. We create accounts and a short interface guide. We check: a new editor independently goes from draft to publication.

What we hand over: collections, roles, edit policies

After implementation, the editorial team edits the site itself, without contacting us.

Therefore, what is handed over is not "access to the admin panel" but a set of files in the repository: the Decap CMS configuration, rights policies, and instructions for authors and editors.

  • Collection schema — content types (pages, news, authors, directories) with fields: type, required status, validation rule. An entry with an empty title or a broken image link simply will not be saved.
  • Author and editor roles — an author sees and edits only their own drafts, an editor confirms and publishes. Separation is maintained by branches and main branch protection, not by agreements.
  • Drafts and edit preview — saving goes to a separate branch, preview is built from that same branch, so an unfinished page does not reach the live site.
  • Editorial guide — several pages with screenshots: how to add a material, attach an image, submit for review, and what to do if a field fails validation.
  • Rollback procedure — how to return a previous version of a material or remove a published item entirely: through change history and reverting the needed commit.
  • Media file agreement — where images are stored, how they are named, what format and size are allowed.
  • Configuration walkthrough with your developer — access is set up on your accounts, the schema and roles are explained, and support can be provided by your own team.

During acceptance, we go through each item on a live task: create a test material, submit it for review, publish it, and roll it back. If a step requires our participation, that is not a handover but a dependency.

Case study: content edits without developer involvement and without downtime

What it was like before implementation

The site was built from markdown files in Git, and any edit went through a developer: the editor sent text to a shared task list, the engineer added it to the file, committed, and waited for the build.

This yielded 10–12 publications per week and 1–2 days from approved text to appearing on the site — an urgent news item lost its meaning in that time.

Stability suffered too: roughly every third build failed due to a typo in a material's metadata fields or a link to a non-existent page, and the same developer dealt with the logs.

What we changed

We deployed Decap CMS with a Git backend and described collections via configuration: what fields a material has, which are required, and what format the date and cover use.

The editor works in a web interface — the form will not allow saving a material with an empty title or a broken link, and every save becomes a commit with the editor as author.

The build of a separate branch provides a preview before merge, so an error is visible during editing, not in the main branch.

What happened after implementation

The editorial team now makes 40+ edits per week without requests to development. The day until publication shrank to minutes: a material goes live immediately after review, not after the engineer's next available window.

The share of failed builds dropped from a third to isolated cases, and almost all of them are caught in preview. Developers returned to product tasks — content support stopped being their job.

How does the Git backend differ from an external content storage service?

A Git backend means that Decap CMS does not store content itself: every edit is a commit to the repository, and files live in markdown/YAML next to the code.

An external service is the opposite — the editor writes an entry to the vendor's database, and the site fetches it via API. The difference shows not in editing convenience but in who owns the versions and how quickly an error is rolled back.

Criterion Git backend External service
Where data lives files in the repository entries in the vendor database
Version history commits, branches, authorship journal inside the service, often trimmed
Edit rollback revert of the needed commit restore from a snapshot, depth set by the vendor
Drafts branch + build preview drafts in the vendor database
Publication build on our side service webhook, delay outside our control
Content migration repository clone — a complete snapshot export via API and rebuilding of relations
Dependency access to the repository vendor keys, quotas, and rules

The practical effect: rollback stops being a "contact the contractor" operation. Someone broke a block on the home page: revert the commit, rebuild, deploy — and the site has the previous version.

Edits from several editors merge like code, and discrepancies are visible in a line-by-line comparison rather than surfacing in production.

The flip side is fair: a Git backend requires a working build and repository access for those who edit content.

An external service is justified for a large editorial team with roles and field restrictions — but then content lives in someone else's database, and you inherit dependency on its terms and API.

Engineers' questions: access, edit rollback, content migration

In this scheme, content does not live in an application database but as files in the repository: every edit becomes a separate commit with an author and date.

Therefore, questions about access, rollback, and migration are solved not by admin panel modifications but at the version control system level — and they are answered in advance.

Where do materials physically live, and what happens during a failure?

Texts and images are stored in the repository, not in a single server's database. If the editor or build fails, content is not lost: static files can be rebuilt from the repository, and everyone working on the project has a complete copy.

How do you separate access rights between editors?

Roles are structured by section: an author edits only their own materials, an editor publishes, and an administrator manages the field schema. The restriction is set at the repository and branch level — an author physically cannot affect someone else's section or the main branch.

What should be done with already accumulated content in another format?

We migrate it with a script: pages and entries are parsed into files while preserving URLs, and images are moved to media storage. After the run, we verify the link map and set up redirects so that accumulated search traffic is not lost.

How are drafts, publication, and rollback of a failed edit structured?

An author works in a separate branch, the draft is visible in preview, and publication is a merge into the main branch. A failed edit is rolled back with a reverse commit: the site returns to the previous state within one build, without manual restoration from a backup.

Let's discuss the task: what is needed from the editorial team and from developers

For the Decap CMS installation estimate to be accurate and the implementation plan to be feasible, we need introductory context about the project.

It differs on the editorial side and the development side, and it is better to gather it before the start than to clarify it midway through the work.

  • Where content currently lives: files in the repository, markup as text, or data in another storage; who edits it and how.
  • Repository and branching model: Git host, working branch, merge rules for changes, who has the right to publish.
  • Collection structure: which entities are edited, required fields, nested lists, and relationships between documents.
  • Editorial roles: who writes, who approves, who publishes; whether a separate branch is needed for drafts and pre-release review.
  • Build and publication: static site generator, build configuration, how the finished version is currently deployed and how a failed one is rolled back.
  • Access and security: author authorization scheme, repository rights, backups, who is responsible for recovery.
  • Requirements for the contractor: scope of work, boundaries of responsibility, procedure for approving edits, and incident response policy.
  • Editorial handover: guide for authors, review of typical errors, and support after launch.

From this, three documents take shape: an estimate for implementation work, a stage-by-stage implementation plan, and requirements for the contractor. Describe the task in free form — we will come back with an estimate and a plan.

Our competencies:

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1393
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1368
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1139
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1152
  • Website development for SBH Partners
    Website development for SBH Partners
    1231
  • Website development for Red Pear
    Website development for Red Pear
    641