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.
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.
The hooks required for their implementation are:
Present the actions using itemFormDropdownActions()
Execute the action with executeItemFormDropdownAction()
Field-Specific Record Actions
Create custom options when interacting with specific fields for advanced use-cases like translations or interaction with other content proofing tools.
The hooks required for their implementation are:
Present the actions using fieldDropdownActions()
Execute the action with executeFieldDropdownAction()
Global Record Actions
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.
The hooks required for their implementation are:
Present the actions using itemsDropdownActions()
Execute the action with executeItemsDropdownAction()
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:
uploadSidebars
and renderUploadSidebar
for entire sidebars, and
uploadSidebarPanels
and renderUploadSidebarPanel
for individual sidebar panels.
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.
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:
Copy & Paste
Duplicate
Move
Delete, and
Add Blocks
Great news! We've optimized our asset upload system to make bulk uploads much faster. Here's what's improved:
Parallel processing: If you select or drop multiple files at once, they will now upload simultaneously.
Reduced wait times: You can continue uploading while previous files are being processed/analyzed.
With these updates, you can upload hundreds of assets in just minutes instead of hours. Bulk uploads are now up to 10 times faster, especially if you have a lot of files to handle.
Give it a try and feel the difference in speed for yourself!
When working with certain fields, such as the HTML field, it's common to paste content from other websites, tools, and apps. Sometimes content added comes in with considerable HTML metadata, such as styling or formatting metadata, which can quickly surpass the 300KB field size limits "invisibly" without being noticed.
To notify you of this, we've added a new warning to notify users about potentially unexpected hidden content inside text fields.
In the admin UI, you'll see a yellow warning message like this under affected fields if we detect an abnormal amount of invisible text in it.
We're excited to introduce Asset Collections, which adds one more way to organize assets in the media area.
Starting today, you can create asset collections and sub-collections in the DatoCMS media area, just as you would with content records.
Asset collections behave very much as folders in a classical file system: they can be nested and organized as required by you and your team. Each asset can be assigned to only one collection.
Adding assets to collection is as easy as selecting and assigning them using the action bar at the bottom of the screen or via drag and drop: you can assign single assets or the selected assets altogether.
For further details and all the relevant context, check out the docs!
We've released considerable enhancements to how DatoCMS handles webhooks.
In case of delivery failure, DatoCMS can now attempt to resend the request up to 7 times, with increasing intervals between each attempt. The schedule for these retry attempts are on the docs.
To enable this feature, simply check the Automatic Retries option in your webhook settings:
Originally, the CMS showed just the latest 30 webhooks. We've now upgraded this by offering options to see events from the past week and apply filters/custom ordering, while also modernizing the UI to match the rest of the CMS:
Refer to the docs for more details on webhooks as well as the retry schedules.
We’ve just introduced an improvement to our integration with Vercel Content Link. Now, if the editing spot you click in your site preview is a nested block, you’ll be taken directly to the specific nested block on the record page. Here’s how it works👇
This update proves particularly helpful for editors working with complex models: they can now get straight to editing, saving time and eliminating the risk of picking the wrong block.
Keep in mind that this feature is available for Vercel customers on Pro and Enterprise plans, and for Enterprise DatoCMS users.
We’re truly excited to announce DatoCMS Cache Tags — an innovative and easy-to-implement solution that ensures your CDN always serves fresh content while maintaining top performance with cached content.
With minimal effort on your side, you get to enjoy:
Top-notch performance and instant updates - Whenever something changes in DatoCMS, visitors immediately see it, while all the rest stays cached for speed. 🎯🏃🏽♀️
Developer Relief - No need to code complex invalidation logic; we handle it all for you! 👩🏾💻😌
Cost Efficiency - Reduce hosting (and DatoCMS!) costs with precise caching, avoiding things like rebuilding your whole website just to fix a typo. 🤦🏻♂️🙄
Here's a few ways to get started:
Read the full announcement on our blog.
Dive into the documentation.
Try our starter to learn firsthand how DatoCMS Cache Tags work within a Next.js project!
You can now customize the placeholder text for some of the most used fields in DatoCMS. This allows you to give specific instructions to your editors when they are creating content.
This option is now available for the following fields and presentation modes:
Single-line String Text, Text input editor presentation
Multiple-paragraph Text, Simple textarea presentation
Integer Number
Floating-point Number
Slug