After seeing in action the new Schema Interface that we launched last week, we've decided to step 🆙 our emoji game a little more. Hence why, we've just rolled out a handy emoji picker that's available throughout DatoCMS.
You can use it to spruce up the following with some visual flair:
Models, Blocks, and Groups in the Schema section
Menu Items and Saved Filters under the Content tab
Saved Filters in the Media library
Any Fieldset within a model
We're thrilled to reveal a major upgrade to DatoCMS's schema modeling capabilities: the Single Block variant of our Modular Content, along with its Frameless display mode.
With the Single Block variant of the Modular Content field, authors can easily insert a single block within a field.
At the same time, developers can finally retrieve just one block, rather than an array that would always contain that one block. This eliminates unnecessary complexity and clutter in your content structure, and puts an end to all the pointless [0]
occurrences in your frontend code.
The Frameless display mode takes the Single Block variant one step further by allowing the reuse of schema between models, which is one of the most requested features in our Community.
Activating this mode hides the Modular Content field from the authoring interface, causing the inner block's fields to appear as though they are an integral part of the model.
This approach not only provides a more straightforward experience for authors but also offers an efficient solution for reusing common fields across different models without duplicating or manually synchronizing them.
A small caveat: in order to use the Frameless presentation, you will need to have only one allowed block, plus mark the field as required. If either of these conditions is not met, the block will fall back to the default "Framed block" view.
Discover more about this new feature in our docs.
You can also convert an existing Modular Content field from a single block to multiple blocks at any time, or vice versa.
Note that if you transition from multiple blocks to a single block, only the first block will be preserved, and the rest will be discarded. This change is irreversible, so we recommend testing it in a sandbox environment before implementation.
Now you have the option to customize the look of a DatoCMS project with a sleek and user-friendly monochromatic palette. These palettes are designed to deliver a pleasing visual experience, while also meeting WCAG Level AAA contrast ratios for accessibility.
For those of you with existing projects, no sweat! Your existing appearance settings will stay untouched. You can decide when and if to make the switch to the new palette from the "Configuration > Appearance" section of your project:
For those embarking on new projects, the monochromatic palette will instead be your default setting. As you set up your project, you'll have the freedom to select from a variety of handpicked palettes:
And remember, you can further customize your project's look anytime in the Appearance section of your project's settings.
Try out this new feature and give your project a clean and stylish look effortlessly! 😊
Following the introduction of a revamped navigation system back in October, we're taking things one step further with a complete overhaul of the Schema tab. We've designed this update to simplify your workflow and make your life easier when building or adjusting your content model.
You can now drag and drop models and blocks to reorder or group them, for a more visual representation of your content's hierarchy within your schemas. Plus, you can create nested groups, for maximum flexibility when working with lots of entries.
With the new history icon situated at the top right of the Schema navigation, your latest five visited items (be it models or blocks) are just a click away. This feature is especially useful when you're in the process of refining a model and need to revisit specific blocks frequently.
We've relocated the search bar to the top left of the Schema navigation. Now, when you search, the results include both models and blocks, each marked with their respective icons. Moreover, if an item is part of a group, its path will be displayed, making it easy to locate it within the schema.
Add a touch of clarity (and personality!) to your projects by using custom emojis as icons for your models and blocks. Use the handy emoji picker when editing the name, and we'll swap out the default icon for your selected emoji.
In an effort to simplify frontend tasks and prevent confusion over types, we're introducing a change in the way we handle the return value of boolean fields in your records.
Basically, boolean fields will never return null
, and only true
or false
. Where previously the APIs would return null
, they will always normalize the value to false
.
Starting today, only newly created DatoCMS projects will follow the new convention.
Existing projects won't be affected in any way, as this new behavior could result in breaking changes. If you wish to apply the update on a existing project, you can do so from your project's settings.
You'll notice the change in two situations:
If there are already existing records in the model, and no default value is assigned when creating the field:
Previously: The field value would remain null
for each existing record.
Now: The field value will be false
for each existing record.
If you set the boolean field value to null
:
Previously: Both CMA and CDA would return null
.
Now: Both CMA and CDA will return false
.
To activate the new functionality on existing projects, head over to the "Available Updates" section of their environment configuration, as shown in this video:
As with any update, we strongly recommend testing the effects in a sandbox environment before applying the change to your primary environment, as this update cannot be undone.
Your sensitive information deserves the utmost protection, and we're excited to announce a significant update to address potential data exposure risks in DatoCMS projects.
Previously, if you had an API token with limited permissions and made a GraphQL introspection query to our Content Delivery API, you could inadvertently reveal sensitive project details beyond the token's scope. This vulnerability could expose private information such as model names, fields, and their interconnections.
To further illustrate the issue and the impact of the update, here's an example:
{blackFridayOffer {perOrderDiscount}}
Let's say you have an API token that only has permissions to view the "blog articles" model in your DatoCMS project. Previously, when you made a GraphQL request for something inaccessible, the response simply showed a lack of data, but without explicitly hiding any related fields:
{"data": {"blackFridayOffer": null}}
Sure, no data is spilling out, but the mere existence of the blackFridayOffer
field in the project's schema is a subtle hint that there's some Black Friday intel lurking about, potentially even a per-order discount. That could be information you'd rather keep under wraps.
As of today, all new DatoCMS projects will ensure enhanced security by implementing a new behavior. If an API token can only access specific models, inaccessible GraphQL fields will be completely hidden from the GraphQL schema and response, eliminating any potential information exposure.
The same query would result in an error:
{"errors": [{"message": "Field 'blackFridayOffer' doesn't exist on type 'Query'","path": ["query","blackFridayOffer"]}]}
By concealing the inaccessible field, the response no longer reveals any information about the Black Friday offer, safeguarding against potential data exposure risks.
If you have an existing project that you'd like to update, you can easily do so from the "Available Updates" section of your environment configuration, as shown in this video:
We strongly recommend testing the effects in a sandbox environment before applying the change to your primary environment, as this update cannot be undone.
We've introduced two user-friendly features that will enhance your experience with DatoCMS, offering increased customization without added complexity.
In Edit SEO field > Presentation you will find two more options:
SEO Fields Customization
Choose precisely which fields to display to your editors, giving you the flexibility to focus on what matters most. Choose the fields custom combination of title, description, image, noindex and X summary card:
Example of what "noindex" looks like to editors:
Social Link Previews Selection
With our latest update, you can now handpick the social link previews that matter most to your editors, by selecting which previews to display in the SEO field.
In addition to the pre-existing previews for Google Search, Twitter (X), and Facebook, we are also introducing three new previews: WhatsApp, Telegram, and Slack:
Example of the resulting social media card previews for editors:
We noticed that some users were using custom-made fields to be able to manage robots meta tags preferences at a record level. That is why we decided to introduce it as an enhancement to our SEO field functionality.
Before, you could only set indexing at an environment level, in the SEO Preferences. Recognizing that some scenarios demand more flexibility, we've implemented a "Prevent a page from being indexed by search engines" option also for single records.
This checkbox, available in all SEO fields, empowers developers to seamlessly add a Robots noindex
meta tag to pages, offering a nuanced solution for cases not covered by our pre-existing options.
Our CDA _seoMetaTags
will return a new Robots noindex
attribute if noIndex
is enabled either at environment level or record level. Read more about _seoMetaTags
, on our CDA documentation.
In an attempt to enhance the discoverability of the diverse editors available for each field type, we've just rolled out a minor visual tweak to the field editing form.
Now, for all the various editor types that Dato natively offers for each field, there's a small illustration that exemplifies the final result on the content editing side:
In case a plugin that has been installed adds extra editor types, these will be shown in the user interface with a universal Plugin icon:
In future versions of the Plugin SDK we might allow customization of the illustration associated with each field editor... but one thing at a time! 😉
We understand the importance of safeguarding critical environments, and based on valuable feedback from our users, we're introducing a significant enhancement.
With the addition of the new flag "Force the use of sandbox environments" under Project settings > Global properties, admins now have the option block any change to the schema and configuration of the primary environment:
Developers can now work confidently, knowing that destructive actions are disabled, while users still retain the ability to navigate and edit content in the Content and Media Area tabs.
Activating this feature enforces best practices such as migration scripts and sandbox environments, minimizing the likelihood of unintentional changes or footgun situations in production.