Try
Article

What Is a Git-Based CMS?

Photo of Sara Williams

Sara Williams

Published , updated

Git remains the go-to option for developers for source code management. The distributed version control system enables developers to track changes and collaborate across various use cases.

As the most dominant version control system used by almost 94% of developers, Git offers numerous benefits for productivity, collaboration, and more. But managing source code isn’t the only thing that Git can be used for. It can also provide a robust architecture for headless CMSs. 

A headless CMS is either categorized as an API-first CMS or a Git-based CMS. However, the reality is that these capabilities aren’t mutually exclusive but only features of a particular CMS. 

In this blog, we’ll explain what you need to know about Git-based CMSs, where the confusion of Git-based and API-first CMSs comes from, and showcase how CrafterCMS uniquely leverages Git for content management.

Git-based CMS Defined

A Git-based CMS leverages a decentralized Git repository and works with files stored in the repository for managing content. It pushes changes first to the repository, which, in various manners, eventually triggers changes on the website or app.

All content changes are reflected in the repo, and depending on the CMS’s support for preview, workflow, and content publishing, approved changes are deployed to the production application or website where content is served to end users. 

By leveraging a Git repo, a Git-based CMS benefits from all of Git’s version control capabilities and enables simple rollbacks, content auditing, and branching, as well as compatibility with modern Git-based workflows, DevOps processes, and tools. And it's important to not confuse Git (which is an open source project at https://git-scm.com/) and hosted versions of Git such as Github or Gitlab. 

Learn More: Git vs GitHub vs Gitlab

Git-Based CMS vs. Database-oriented CMS

A traditional database-oriented CMS is built on a SQL or NoSQL database backend. While Git-based CMSs can be ideal for developers, many marketers are accustomed to traditional CMS platforms. 

In today’s modern content environment, however, a traditional CMS can hinder enterprises trying to provide quality content experiences for their customers, limiting the channels for content delivery and restricting developers from using modern frontend frameworks.

Even newer, headless CMS platforms usually rely on centralized databases, limiting how content gets stored and delivered. They also aren’t aligned with the modern workflow standards of Git and CI/CD processes.

Multi-object Versioning

A database-oriented CMS uses only single-object versioning, which means tracking single-object graphs or clunky data structures for tracking relationships. This approach fits perfectly when enterprises only need to manage a blog or simple website. Unfortunately, this approach isn’t sufficient in today’s dynamic content environment, where digital experiences span multiple content channels and leverage several assets.

Git-based CMSs can use multi-object versioning to allow specific content tracking, providing a clear line of sight across all content assets. This enables previews, better content workflow management, and the ability to easily move content between environments and integrate it with other third-party systems like eCommerce, marketing automation, and more.

Distributed Repository and Branching

A Git-based CMS enables developers to use their own local and intermediary branches linked to the parent repository. In this case, distribution becomes much easier, and code can flow from independent repositories quickly. Source code changes and moving content between environments are also possible, where developers can remain part of the CMS, even if they use their local machine.

Git also makes software source code control management (SCM) easier so that teams of developers can work on the same code base without getting in each other’s way. With traditional CMS platforms that don’t have easily distributed databases, problems would occur that restrict the tools developers can work with and the ability of the company to scale.


Git-based CMS

Database-centric CMS

Database Backend

Git

SQL or NoSQL

Versioning

Multi-object versioning

Single-object versioning

Tracking Capabilities

Robust and ideal for enterprises 

Limited tracking capabilities

Distribution 

Distributed repository that offers branching and seamless movement of content and code between environments

Limited distribution which can reduce scaling capabilities

Collaboration

Developers and content authors can easily collaborate

Restricts collaboration with barriers between content and dev teams


Git-based CMS vs API-First CMS

When selecting a headless CMS, companies usually believe they have to choose between a Git-based CMS and an API-first CMS.

An API-first CMS separates the front-end presentation layer from the backend content management and storage layer. All content assets get stored in the backend content repository, and this layer is connected to the frontend with the help of APIs. 

As a result, an API-first CMS enables businesses to deliver content to websites, intranets, customer portals, IoT devices, AR/VR tools, and any other digital channel. An API-first CMS makes companies future-proof when it comes to content management. If new digital channels and interfaces emerge, they can still deliver content to them using APIs. This enables businesses to create engaging omnichannel experiences that span multiple platforms. 

In addition, developers have more control over the frameworks they use to build digital experiences without the restrictive templates they might have encountered in a traditional CMS.

Why It Is Not "Either-Or"

The main source of confusion regarding a CMS being Git-based or API-first comes directly from vendors. Since a headless CMS is usually one or the other, vendors tend to position themselves against each other based on that set of features. However, that’s all each represents: a collection of features. 

Even design agencies get confused. For example, Bejamas thinks there are “two types of headless CMSs: Git-based and API-driven,” which is untrue, as these two features are not mutually exclusive.

Many Git-based CMSs don’t offer a content delivery component. Instead, they use Git (or a Git-based platform like Github) and Git-based workflows in a simple way to move around Markdown, HTML, CSS, and/or other static content. Many headless CMS platforms considered API-first focus on the content-first capabilities they provide. They can bring content and DevOps processes together, producing change and improving time to market and efficiency. 

However, the versioning capability of Git makes it a much better version control system than database-centric CMSs. These two things combined - Git-based AND API-first, can make a CMS unstoppable, and there is no reason why you can’t combine them. 

Watch: CrafterCast Episode 10 - Git-Based CMS vs. API First CMS

Why Choose a Git CMS?

Now that we’ve cleared up the confusion between Git-based CMSs and API-first CMSs, let's assess the pros and cons of Git-based CMSs. Here are the benefits of a Git-based CMS:

Complete Version Control of Content

A Git-based CMS provides full version control for all your content. Every change made to the content is meticulously tracked and stored as a commit in the Git repository. This level of version control ensures that you have a historical record of all content changes, who made them, and when they were made.

Easy and Complete Rollbacks

Rolling back to a previous version of your content is straightforward with a Git-based CMS. If you discover an error, you can quickly revert to an earlier commit or version, allowing content teams to promptly address mistakes, recover from unexpected problems, or undo changes that didn’t work as intended.

Auditability

Thanks to version control, you can review the entire history of changes to your content. Aside from tracking changes, content teams can create audit trails that would be valuable for compliance, quality assurance, and understanding the content creation process. 

Alignment With Modern Web Development Workflows

Most development teams already use Git in their processes, making it a natural fit for managing content alongside code. Content creators and developers can work collaboratively within a single ecosystem, streamlining both delivery of new software features and publishing of new content.

Compatibility With DevOps Processes and Tools

By using Git as the underlying version control system for content, organizations can integrate content management seamlessly into their DevOps pipelines and implement DevContentOps. This integration enables automated testing, deployment, and content updates alongside code changes, ensuring a consistent and efficient development and deployment process.

The Drawbacks of Some Git-Based CMSs 

Git-based CMSs are perfect for developers, providing streamlined workflows, speed, security, and scalability. Unfortunately, these CMSs don’t always offer the required authoring capabilities for the marketers tasked with creating content. They lack personalization and user-friendly tools and have limited presentation to static websites.

These drawbacks are also why enterprises focus on CMSs that position themselves as API-first and ignore the benefits of Git-based CMSs. 

Lack of User-Friendly Content Authoring Features

Git-based CMSs cater to developers but provide insufficient interfaces that enable marketers, content authors/editors and other business users to create and edit websites without assistance. Instead, content authors are forced to rely on their more technical counterparts unless they happen to be familiar with Git themselves.

No Dynamic Sites

Even though static sites may be sufficient for the average developer, these sites aren’t enough for today’s consumers. Dynamic sites offer personalization that can entice customers with relevant content to help them make purchasing decisions or simply enjoy the experience. However, static sites come pre-rendered and provide the same content for each visitor, which can be restrictive.

These are the problems that plague most Git-based CMS platforms. However, CrafterCMS utilizes Git much differently.

How CrafterCMS Integrates Git as a Content Repository

CrafterCMS is a headless, Git-based CMS where all content-related assets are stored in a distributed Git repository from the beginning, except for larger binaries placed in bucket storage. Content, metadata, and more are all stored in XML files in Git, along with static assets such as CSS files.

All content in CrafterCMS is fully versioned and auditable using Git’s sophisticated version control mechanisms. Crafter understands how content elements relate to one another, so when content gets published from Git to the delivery system (Crafter Engine), it can easily turn that raw content into dynamic, personalized experiences for end users.

By leveraging a decentralized, distributed Git repo, Crafter provides more effective workflows for developers, content authors, and operations.

  • Developers can work against the Git repo where the site or app is located using their IDEs and tools.
  • Content authors can work against the Git repo without knowing anything about Git by utilizing the Crafter Studio WYSIWYG UI.
  • Operations can easily maintain production environments and lower environments, as content and code easily flow forward and back between environments.

CrafterCMS doesn’t force organizations to choose between a Git-based CMS or an API-first CMS. Git is integrated into CrafterCMS’s content repository, enabling all the robust version control benefits it provides. 

On top of that, it provides an API-first headless development environment for content authoring (to easily compose a highly tailored WYSIWYG authoring/editing/publishing experience) and a content delivery platform for building any type of end-user experience using any front-end technology. 

Benefits of a Git-based CMS

Enterprise Sites and Apps: Static and Dynamic

Many developers will be familiar with platforms like GitHub. As part of their offerings, GitHub Pages enables you to turn GitHub repositories into websites for showcasing your projects, portfolio, documentation, and more. Content for projects is found on a special branch. It can also be combined with tools like Jekyll to launch a blog or turn plain text files into websites.

However, while this is enough for a simple portfolio project, it’s not sufficient for the demands of a modern enterprise. CrafterCMS provides the same simplicity as GitHub Pages but can launch similar projects at a larger scale.

CrafterCMS supports both static and dynamic, content-rich sites and apps. Companies can achieve the same performance, scalability, and security benefits of Git-based websites along with a marketer-friendly author experience that enables personalization as well as a myriad of developer options for building dynamic websites.

Read More: Building Dynamic Sites With a Git-Based CMS: Secure, Fast, and Personalized

DevContentOps

CrafterCMS’s Git-based architecture enables developer teams, content author teams, and operations teams to work in sync without getting in each other’s way. Through a unique DevContentOps approach that brings content into the DevOps equation, enterprises can bring the same speed and efficiency benefits from DevOps to their content applications.

With CrafterCMS’s unique support for DevContentOps processes that are enabled by its Git-based content repository, the seamless collaboration between software development teams, content teams, and IT operations is finally possible, eliminating the content freezes, silos, and other issues that can occur when these teams are forced to work separately with database-centric CMSs. 

Multi-User Management & Workflows

Developers can use their own local Git branches. At the same time, content authors work in secure, production sandboxes, enabling entire teams of developers and authors to work together while leveraging sophisticated branching and version control that makes all their efforts more efficient and streamlined.

CrafterCMS: Git-Based CMS Without the Drawbacks

CrafterCMS is a truly decoupled content management platform, separating content authoring from content delivery to meet the needs of most leading enterprises where performance, security, productivity, and cost-effectiveness are paramount.

Why CrafterCMS Surpasses Other Git-Based CMSs

With most other Git-based CMSs, only static files (markdown, etc.) are managed in a Git-based repository like GitHub. Content authors have to manage content by editing these static files and then deploying the content to the production delivery system (web server). 

In contrast, the open-source Git library is embedded as the core content repository within the CrafterCMS content authoring platform. It manages both static content (e.g., CSS, HTML snippets, images, etc.) as well as dynamic content (e.g., XML files containing metadata and content that is processed and rendered by Crafter’s content delivery system, JavaScript, Groovy scripts, content targeting info, persona configurations, etc.). 

First-Class Support For Content Teams

Content authors can then use Crafter Studio, our WYSIWYG content authoring app, to perform all content creation and editing, in-context previews, drag-and-drop experience building, and more robust features without knowing anything about Git. They get all of the benefits and work through a user-friendly interface. Content is saved and versioned in Git, facilitating DevContentOps through APIs and DevOps automation via Git mechanics. 

In addition, Crafter Studio itself is an extensible React app that rides on top of our API-first content authoring platform, meaning enterprises can customize Studio to compose their own authoring experience, integrate with a Front-End-as-a-Service (FEaaS) solution, or extend Studio with plugins from CrafterCMS Marketplace

After running content edits through workflow and any necessary reviews and approvals, content is then published to the content delivery system powered by the API-first Crafter Engine, where dynamic content responses can be served as APIs (REST, GraphQL, etc.) or rendered content (server-side rendered HTML). Ultimately, getting the best of both worlds is possible by combining API-first and Git-based capabilities into the same CMS platform. 

Learn more about Git-based CMS platforms by reading our White Paper: Five Reasons Why You Should Use a Git-Based CMS.

Related Posts

Related Resources