A new enhancement has just been released that should allow for easier investigation of any issues encountered with the indexing of pages by our Site Search functionality.
By opening the details of events labeled "Site spidering completed with success", it is now possible to access a detailed log of the operations performed by our crawler, including analysis of the robots.txt and any sitemaps.
At the end of the log, you will also find a handy list of pages that encountered indexing problems.
Another one for content best practices! We're rolling out an option to stop CMS users from publishing invalid records.
How can published records be invalid you ask? Imagine records where title fields were required, and everything was published correctly. No sweat. You now extend that model to add in a new subtitle field which is also required. At this point, all the records in that model will require you to update them by filling in the subtitle field before their next publish.
While we'll enable this flag to TRUE for all new projects, you can easily enable it in your existing project under Configuration > Available Updates.
We’ve made a small but significant change to the way new models are created.
To enforce editorial best practices and provide better flexibility for your content workflows, draft mode will now be enabled for all new projects. While this is the new default, you are able to override this when creating new models, under the model's validation settings.
Additionally, for existing projects, we’ve added an option to enable this setting. You can find it in Configuration > Available Updates.
It is now possible to save invalid records in their draft state, and postpone validation enforcements to publication time. The feature can be enabled and/or disabled on models with the draft/published stages active.
The feature affects the CMS and, of course, the CMA (Content Management API). When draft saving is active, it's possible to POST/PUT invalid records to CMA and have them saved: the endpoints respond with a 200, and the record is just saved as a payload.
Validations will take effect when the record is published. If the record is not valid, publication fails, and editors need to fix the content to ensure all rules are handled before proceeding to move the record into the Published stage.
Starting March 10th, 2025, our legacy batch operation endpoints — which have been deprecated for years — will be discontinued and will return error responses. Documentation for these endpoints can be found here:
If you're using any of these endpoints, please update your integration to use their replacements. Documentation for the current endpoints can be found here:
Based on our monitoring over the past two months, only four projects are actively using these deprecated endpoints. If your project is affected, you will receive a direct email from our team in the coming days.
We’ve redesigned the Plugin installation experience to make discovering and installing plugins from the marketplace faster and more intuitive—directly within your DatoCMS project.
How It Works
To add a plugin, go to Configuration > Plugins and click on Add a new plugin. This opens the Marketplace, where you’ll find all community plugins displayed as detailed cards, giving you essential information at a glance.
Clicking on a plugin reveals its detailed view, including its description, metadata, and additional information. From there, simply click the Install button to start using your plugin immediately.
What's hot and what's not
We’ve introduced brand new collections to make it even easier for you to pick and choose relevant plugins for your project!
Editor Favorites to showcase plugins that enhance the content and editorial workflows with commonly used plugins loved by editorial teams.
Dev Favorites to highlight the most commonly installed plugins by project owners to make daily operations and new features easier to manage.
Enterprise and Workflows to curate common plugins for security, compliance, and custom third party integrations used by teams of larger sizes.
We weren't too happy about the inconsistencies and the discoverability of the expand/collapse actions with sidebar interactions in the CMS, so we've released some improvements.
The sidebar component retains it's open/closed states, and we've redesigned the component to have consistent interactions with instant transitions.
This change is reflected on all sidebars to the left and right of screens on content views, asset views, plugins, and within the project settings.
We've recently pushed out a relatively large UX improvement to working with Structured Text fields in DatoCMS.
Aside from slash commands and markdown, editors can also manage the formatting of their content with the new upper toolbar, bringing in a more familiar experience.
While the floating toolbar on selected content still exists, focusing on a Structured Text field now reveals a new top toolbar with the following options:
Text formatting for setting text as headers, paragraphs, and quotes,
Regular formatting options for bold, italic, strikethrough, underlined, and highlighted content,
Inserting toolbar icons to trigger custom plugins,
Inserting code blocks,
Generating bullet and numbered lists,
Inserting links and dividers, and
Embedding blocks and models if the Structured Text field has validations in place for it.
The new toolbar is also applied to embedded blocks that have a Structured Text field within them.
Note: The new toolbar will only show on the active Structured Text editor. For example, if you have a Structured Text block embedded within the editor, you will see the toolbar within that block until you re-interact with the parent field.
Get up to speed with all the capabilities of the field on the docs.
We’ve made some considerably large updates to Plugins in DatoCMS.
It’s now possible to insert and interact with plugins in 3 new locations within the CMS, making content operations much more flexible for your editors and use-cases.
Dropdown Actions
We've introduced hooks to implement custom dropdown actions across various parts of the CMS:
Record-Editing actions
Give editors custom options when interacting with specific record types for use-cases like triggering workflows or interacting with their content in specific ways.
And finally, give more control to editors when interacting with Records in bulk, to unlock use-cases like mass-editing or enhancing Records without having to enter each one individually.
Another long-requested feature, similar to the sidebars on Content Records, you can now create plugins for the asset views.
You can create individual panels within the existing sidebar view, or
Create entire sidebars altogether.
This is particularly nifty for use-cases like adding custom data/fields into asset properties, or enriching the CMS to offer editors a view on how their assets would look across specific devices, for example.
The implementation is similar to how you'd handle creating plugins for the Content Record sidebars, with the addition of asset-view specific hooks:
Record collection outlets allow you to add custom areas to the views where you see content records of a certain model.
You can add plugins to the tabular, compact, and tree views for models, and can use it for a variety of use-cases like content workflows, instructions, and other general information that is relevant to an entire model.
The implementation is similar to that of Record Form outlets, with specific hooks added in:
itemCollectionOutlets; to declare the intention to offer Record Collection Outlets, and
renderItemCollectionOutlet to display the Outlets.
Managing Modular Content is now faster and more efficient with the addition of Bulk Actions. You can now easily select multiple Modular Content items and perform actions all at once from a brand new action bar.
Key Features:
Bulk Operations
Each Modular Content row now includes a checkbox for easy selection and you can perform bulk actions such as:
Select All / Invert Selection
Expand / Collapse selected blocks
Copy multiple blocks
Delete selected items
Block Options
We've also revamped the contextual submenu to make managing blocks a bit easier, with an improved flow to: