For developers

Content you can read, in files you already know how to handle.

Every Moteur project is a Git repository of plain JSON. Your site reads it through a REST API. You change it from the Studio, the CLI or an agent, and every save is a commit.

Louise fixes the accent in an English headline, “Montreal” to “Montréal”, and publishes. The History tab shows the save. Then a terminal: the project’s Git log has the commit, and the site’s script reads the new headline from the API.

One save: the Studio, the commit it made, and what the site reads.

Try it

Open the repository

This is the demo journal’s project, as it sits in Git. Open a file to read it, and see the commits that touched it, each with a name on it.

models/article/entries/issue-03-1/entry.jsontrimmed for the page

{
  "id": "issue-03-1",
  "type": "article",
  "status": "published",
  "data": {
    "title": {
      "fr": "L'Usine Qui Ne Dort Jamais",
      "en": "The Factory That Never Stops"
    },
    "slug": {
      "fr": "l-usine-qui-ne-dort-jamais",
      "en": "the-factory-that-never-sleeps"
    },
    "excerpt": {
      "fr": "À trois heures du matin, l'usine Leclerc & Fils à Rouyn-Noranda est aussi lumineuse qu'en plein jour. Les néons bourdonnent. Et douze unités INDUSTRIE-F travaillent sans pause, sans café, sans la fatigue qui ralentit…",
      "en": "At three in the morning, the Leclerc & Fils factory in Rouyn-Noranda is as bright as midday. The fluorescent lights hum. And twelve INDUSTRIE-F units work without breaks, without coffee, without the fatigue that…"
    },
    "author": "unit-7",
    "cover": {
      "assetId": "mq1mrz9k-7n3w8itd",
      "alt": {
        "fr": "L’usine de Rouyn-Noranda, 3 h du matin",
        "en": "The Rouyn-Noranda plant, 3 a.m."
      }
    },
    "body": [
      {
        "type": "core/paragraph",
        "data": {
          "content": "…"
        }
      }
    ]
  }
}

Its latest commits

  1. 30b5687Record publishedCommit for article/issue-03-1Céleste Armand · 25 Oct 2026
  2. 2ae788aPublish article/issue-03-1 — Céleste ArmandCéleste Armand · 25 Oct 2026
  3. a52d724Submit for review article/issue-03-1 — Marguerite FontaineMarguerite Fontaine · 25 Oct 2026

The files and the history are the demo project’s own, shortened where they’re long.

Your tools

What you work with

Plain files underneath, and the tools you’d expect on top. Nothing you have to learn a query language for.

  • API

    A REST API per site

    Each site reads its own channel: the models and fields it needs, published content only, with a read-only key.

    • Its own OpenAPI to download
    • Pictures resolved, in any size
  • Client

    A small client

    @moteurio/client wraps the API for TypeScript and JavaScript, from entries to menus, sitemaps and image attributes.

    • No other dependency to learn
    • Previews with one token
  • CLI

    The command line

    Everything the Studio does, from a terminal: list entries, change a field, ask for a review.

    • Scripts and CI, signed in as you
    • The same rules as the Studio
  • Git

    History you can diff

    Every save is a commit with a name on it, in the project’s own repository.

    • Restore any version
    • Branches for big changes
  • Webhooks

    Signed webhooks

    Publishing, form letters and more call your endpoints, each request signed so you can check it came from Moteur.

    • Rebuild a static site on publish
    • Retried when your endpoint is down
  • Plugins

    Your own fields and blocks

    When the forty kinds of field aren’t enough, add your own with the plugin SDK.

    • Fields, blocks, storage, routes
    • Limits too, if you host it

Questions developers ask

A developer asksIs there a GraphQL API?

MoteurNo. Each site gets a REST API through its channel, described by its own OpenAPI document.

A developer asksCan I edit the files directly?

MoteurNot on Moteur Cloud. Changes go through the Studio, the API, the CLI or an agent, so each one is checked and committed with a name. On your own server, the files are on your disk.

A developer asksWhich frameworks does it work with?

MoteurAny that can fetch JSON. The client is for TypeScript and JavaScript. PHP and the rest call the REST API directly.

A developer asksDo I get TypeScript types for my models?

MoteurYes. `moteur types` writes them from a channel: every model, block and structure, all the way down. Commit the file, and with --check, CI fails when it falls behind the project.

Clone the idea, not a database.

Start a free project and read your first entry from the API in a few minutes.