Skip to content

decap-cms@3.17.0

Choose a tag to compare

@martinjagodic martinjagodic released this 14 Oct 07:54
· 5 commits to main since this release

Decap CMS 3.17.0: Decap Turbo is generally available

Decap CMS 3.17.0 brings Decap Turbo out of public preview and into the stable release. Turbo is an optional hosted backend for Decap CMS: you point your config.yml at it, and it handles sign-in, access control and the traffic between your editors and GitHub or GitLab. Decap CMS itself stays free and open source, and nothing changes for sites that keep their current backend.

What Decap Turbo gives you

  • Editors don't need a GitHub or GitLab account. They sign in with a Turbo account that you invite them to from the dashboard. There's no OAuth app, auth server or Git Gateway for you to run.
  • Large collections open fast. Turbo keeps a cache of your repository's content, so the CMS loads a collection in a few requests instead of one Git API call per entry. Editors stop running into the Git host's rate limits.
  • Roles and permissions. Organizations have owners and members, and each site has its own access list. Custom roles go further and decide, per collection, whether an editor can edit, only view, or not see it at all. The rules are enforced on the server, not just hidden in the interface.
  • Your content stays in Git. Every save is still a commit on the branch you choose, and the editorial workflow keeps working through pull requests or merge requests.
  • Editors know when a change is live. After a save, the CMS follows the deploy until the change is published, and a Deploys page lists recent deploys. This works for GitHub-hosted sites today.
  • Media in your own bucket. An S3-compatible media library works with AWS S3, Cloudflare R2, Bunny or any other S3-compatible storage. It's in beta and available on Pro and above.
  • Site variables and secrets keep the credentials your site needs out of config.yml (Pro and above).
  • An activity log shows owners who changed what, and when.

See https://decapcms.org/turbo to learn more.

Getting started

  1. Sign up. Your organization starts on the Free plan.

  2. Connect your Git provider: install the Decap Turbo GitHub App, or authorize GitLab.

  3. Create a site with its repository, branch, config path and admin URL, then copy its Site ID.

  4. Point your config.yml at Turbo:

    backend:
      name: turbo-github # or turbo-gitlab
      turbo_site_id: your-site-id
  5. Load Decap CMS 3.17.0 or later. The standard script tag and the npm package both include the Turbo backends:

    <script src="https://cdn.jsdelivr.net/npm/decap-cms@^3.0.0/dist/decap-cms.js"></script>

    or npm install decap-cms-app.

  6. Invite your editors from the Turbo dashboard.

The Turbo docs cover each step, along with roles, deploy status and the media library.

Coming from the preview? If your site loads decap-cms@beta or a pinned 3.17.0-beta.N, switch to ^3.0.0 or 3.17.0. The beta tag now points at this release, but jsDelivr lets browsers keep a cached @beta bundle for up to a week.

Also in this release

  • New backend capabilities in core. To support Turbo, core gained optional hooks that any backend can implement:
    • loading configuration from the backend before the CMS starts
    • per-collection permissions, so view-only collections hide create, delete and publish
    • deploy status and a Deploys page
    • a media-library context, so a media library can use the signed-in session
  • More reliable editing. A round of fixes covers the editorial workflow, i18n entries with missing locales, slug length on every backend, search, and notes on GitHub and GitLab.
  • New packages. decap-cms-lib-turbo holds the shared Turbo client code, and decap-cms-media-library-s3 is the media library (beta).
  • Experimental APIs. CMS.editor and CMS.registerFieldAction are experimental and may change in any release.

Upgrade notes

  • decap-server now requires Node 20 or later. Its commands, environment variables and exports are unchanged.
  • The backend names turbo-github and turbo-gitlab are now reserved, and the decap-cms bundle registers media_library: s3.
  • Core now calls these optional methods on a backend that defines them, so a third-party backend that already uses one of these names for something else needs a look: preloadConfig (static), attachEditor, subscribeDeployResolutions, recordSaveForDeployWatch, commitUrl, subscribeDeployStatus, listDeployments, listCommits, deployStatusConfig and reloadEntriesAfterPersist.

Every package's CHANGELOG.md has the full list of changes from the 3.17.0-beta.0 to 3.17.0-beta.5 prereleases.