Learn

What is a Git-based CMS?

A content management system that keeps content as files in a Git repository instead of rows in a database. Every change is a commit, with who made it and when. People edit in a browser, and developers read the same files with the tools they already use.

an article’s life, as commits

$ git log --oneline
4f1c2e9 Publish article/spring-menu — Louise
a07b3d1 Update article/spring-menu — Marguerite
93e5c80 Update article/spring-menu — Louise via Claude
1d2f6aa Create article/spring-menu — Louise
From a Moteur project: each save, with the person who made it. An agent’s edit says who it acted for.

How it works

Content as files, history as commits

Most Git-based systems share four ideas.

  • Files

    Content is files

    Each entry is a file you can open: Markdown, MDX or JSON, depending on the system. Moteur writes JSON, one file per entry.

    models/article/entries/hs-editorial/entry.json

    {
      "id": "hs-editorial",
      "type": "article",
      "data": {
        "title": { "fr": "Un an après la fin", "en": "A year after the end" },
        "slug": { "fr": "un-an-apres-la-fin", "en": "a-year-after-the-end" },
        "excerpt": { "fr": "Pourquoi nous revenons, une seule fois.", "en": "Why we are coming back, just once." },
        "author": "louise",
        "readingTime": 3,
        …
      }
    }
  • History

    Every save is a commit

    The repository’s history is the content’s history. Compare two versions, see who changed a word, put back what was lost.

  • Editing

    Edited in a browser

    Writers don’t touch Git. An editor in the browser saves their changes, and the commits happen behind them.

  • Ownership

    Yours to take away

    A repository can be cloned, pushed elsewhere and read without the CMS. Leaving means taking your files, not running an export.

Three ways to keep content

One writes to your site’s repository. One keeps content in its own database. Moteur gives each project a repository of its own, behind an API.

MoteurTinaCMSContentful
Where content livesPlain JSON files in the project’s own Git repositoryMarkdown, MDX and JSON files in your Git repository1Contentful’s cloud2
GitYes: each project is its own repository, a commit per saveYes: each save is a commit, straight to the branch unless it’s protected3No2
HistoryEvery save is a Git commit, kept as long as the repositoryYour repository’s Git history4A version at each publish, to compare and restore5
HostingMoteur Cloud. Or host the open-source engine yourself, without the StudioTinaCloud, or host the backend yourself1Hosted only2
How a site reads itREST, with an OpenAPI document per site. No GraphQLGraphQL, generated from your schema6REST and GraphQL7
ReviewsDrafts and reviews on every plan. A reviewer or admin approvesPaid plans: a save to a protected branch opens a GitHub pull request8Drafts on every plan. Approval workflows on Premium9

Checked 26 October 2026. Each rival’s facts link to the page that says so, and carry the date we checked.

Fit

Where it shines, and where it gets in the way

  • Good at

    History you can trust

    Every change is recorded by a tool built for exactly that. Audits, rollbacks and “who changed this?” don’t depend on the CMS.

    • Diffs word by word
    • Backups are a git clone
  • Good at

    Developers’ own tools

    Search the content with grep, review it in a pull request, script a change across a hundred entries.

    • No export step
    • Content and its models in one place
  • Watch for

    Many people at once

    Files merge well, but two people in one entry need care. Look for a CMS that shows who’s where and keeps one version of each field.

    • Moteur shows who’s in which field
    • On Moteur Cloud
  • Watch for

    Things that aren’t content

    What visitors send, comments, tokens and keys don’t belong in a public history. Check where a Git-based CMS keeps them.

    • Moteur keeps them beside the repository
    • Never committed

Questions about Git-based CMSs

A client’s editor asksDo writers need to know Git?

MoteurNo. In Moteur they write in the Studio, and every save becomes a commit with their name on it. They never see a branch or a merge.

An agency owner asksIs a Git-based CMS a static site generator?

MoteurNo. It’s where content is kept and edited. A site built with Astro, Next.js or anything else reads it, at build time or on each request.

An agency developer asksDoes the content have to live in the site’s own repository?

MoteurNot with Moteur. Each project is its own repository, and sites read it through an API. So one project can feed a site, an app and a newsletter.

An agency owner asksCan I move my content out of Moteur?

MoteurIt’s already out. Push the project’s repository to your own Git remote, and the plain JSON files are yours, readable without Moteur.

Try a CMS where every save is a commit.

Start for free, save something, and read the git log.