The CMS

This page is out of date - check out the TinaCMS GitHub for the latest contribution information

The CMS object in TinaCMS is a container for attaching and accessing plugins, APIs, and the event bus. On its own, the CMS does very little; however, since it's the central integration point for everything that TinaCMS does, it's extremely important!

Accessing the CMS Object

The CMS object can be retrieved from context via the useCMS hook (from anywhere within the TinaCMS provider). Reference the available core properties to work with.

Disabling / Enabling the CMS

The CMS can be enabled or disabled via methods or configuration on the CMS object. Disabling the CMS prevents the editing UI from rendering and forms from registering.

CMS Configuration

When instantiating the TinaCMS object, you can pass in a configuration object. This allows you to configure some options for the sidebar, toolbar, and also allows you to configure plugins and APIs declaratively.


keyusage
enabledControls whether the CMS is enabled or disabled. Defaults to false
pluginsArray of plugins to be added to the CMS object.
apisObject containing APIs to be registered to the CMS
sidebarEnables and configures behavior of the sidebar
toolbarConfigures behavior of the toolbar
mediaConfigures media.
pageSizeSets how many media objects are displayed at a time in the media manager.

Reference

There are a number of core properties that can be helpful in working with the CMS.

TinaCMS Interface

propertydescription
enabledReturns the enabled state. When true, content can be edited.
disabledReturns the disabled state. When true, content cannot be edited.
registerApiRegisters a new external API with the CMS.
enableEnables the CMS so content can be edited.
disableDisables the CMS so content can no longer be edited.
toggleToggles the enabled/disabled state of the CMS .
Use the useCMS hook to access the CMS and execute these methods as needed.
Last Edited: August 26, 2025