Partners

Product Updates

DatoCMS changelog for new features and general improvements
UI ImprovementIntegrations
One-Click Field Access in Vercel Visual Editing
March 11th, 2024

We've just rolled out an enhancement to our Vercel Visual Editing experience - when you click a visual editing spot on your site preview, you'll now be taken straight to the corresponding field on the record page. Exactly like thisπŸ‘‡

It's a small update, but a big win for editors dealing with complex models, as they can skip the hassle of hunting for the right field, and get straight to work, saving time and avoiding potential errors.

Please note that Vercel Visual Editing is in beta for Pro and Enterprise Vercel customers, while it's currently available for Enterprise DatoCMS customers.

Performance optimizationImages APINew
Automatic Image Optimization + Block serving raw videos
March 4th, 2024

We're introducing a new "Asset CDN settings" section to the "Project settings" area, where administrators have precise control over the optimization of media assets in a project.

Automatic Image Optimization

You can now set a configuration that automatically applies imgix's powerful transformations to all image assets delivered through our CDN, without any code change.

DatoCMS presets (recommended)

To simplify the developer experience, all images will be automatically fine-tuned with a curated preset of imgix parameters.

This preset handles the trade-off between image quality and compression, for an optimal user experience and reduced bandwidth usage and costs - all without touching your frontend.

This setting is the default for new DatoCMS projects.

Custom imgix parameters

If you need more control, you can customize your image delivery by applying different parameters available through imgix for compression, improvements, format, and more

We strongly recommend you read the documentation carefully before applying custom parameters, and stick with the DatoCMS presets if you have doubts.

No parameters

No parameter will be attached automatically - but you can still implement any of imgix's optimizations and transformations in your frontend code.

Block Serving Raw Videos

Administrators now have the option within the CDN settings to prevent raw video files from being served, thereby safeguarding your project against severe slowdowns and excessive bandwidth consumption. This feature is enabled by default for new projects.

Enabling this feature means that accessing a video's imgix URL will result in a Cloudflare Worker returning a 422 error. This policy supports our standard best practice of utilizing Mux for video delivery, optimizing video streaming and ensuring consistency across the platform.

Images APIContent Delivery API
A <VideoPlayer /> for everyone
February 29th, 2024

We've released new <VideoPlayer /> components for React, Vue and Svelte. The component makes it straightforward to display a video from data retrieved from the GraphQL API, and acts as a wrapper around Mux's video player web component.

Given a query like this:

query {
blogPost {
title
cover {
video {
muxPlaybackId
title
width
height
blurUpThumb
}
}
}
}

It's possible to display the video with:

React, Next.js, Remix

import React from 'react';
import { VideoPlayer } from 'react-datocms';
<VideoPlayer data={data.blogPost.cover.video} />

Vue, Nuxt

import Vue from 'vue';
import { DatocmsVideoPlayerPlugin } from 'vue-datocms';
Vue.use(DatocmsVideoPlayerPlugin);
<datocms-video-player :data="data.blogPost.video" />

Svelte, SvelteKit

import { VideoPlayer } from '@datocms/svelte';
<VideoPlayer data={data.blogPost.cover.video} />
Performance optimizationNew
Size limit for Records
February 26th, 2024

Starting March 4, 2024, we are introducing a size limit for new and updated records in the CMS. The standard limit is set to 300KB per record to ensure optimal service performance for all our customers, while allowing a smooth usage of DatoCMS across any scenario. Record size calculation includes content in nested blocks, but does not count assets and linked records.

Please note that the maximum record size allowed by your plan may exceed the default 300KB limit. To confirm whether your plan supports a larger maximum record size, check the 'Plan and Billing' section in your Account dashboard.

It is extremely unlikely to hit the record size limit. In any case, for maximum trasparency, here's what's changing:

  • New Records: If a new record does not comply your size limit, you will be notified on save by an error message, and you'll need to go back and trim the record to save it.

  • Existing Records: All existing records that are over your limit will continue to function normally. You can still access and use these records without any disruption.

    • If you wish to edit and save any of these oversized records, you will need to reduce the record size under your plan's limit.

    • This size restriction also applies when duplicating a record or attempting to revert to a previous version that surpasses your plan's maximum allowed record size.

UI ImprovementNew
Emoji picker πŸŽ‰
January 24th, 2024

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

NewContent Management APIContent Delivery API
Introducing Modular Content (Single Block)
January 23rd, 2024

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.

Simplified data fetching

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.

Reuse fields across models with "Frameless" mode

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.

Switching from single to multiple

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.

NewUI Improvement
Introducing Monochromatic Palette for projects
January 16th, 2024

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! 😊

UI Improvement
New Schema interface
January 16th, 2024

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.

Organize Your Models and Blocks with Ease

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.

Quick Access to Your Recent Edits

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.

Search across models and blocks

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.

Use emoji as icons

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.

Content Management APIContent Delivery API
Updates to Boolean field handling
January 8th, 2024

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.

Who is impacted

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.

What changes

You'll notice the change in two situations:

When a new boolean field is added to a model/block model

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.

When a record is created/updated through CMA

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.

Enable update on existing projects

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.

Content Delivery APISecurity
Improved GraphQL Security
January 8th, 2024

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.

The problem

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.

Legacy token behavior (without improved GraphQL security)

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.

The Solution

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.

Migrating Existing Projects

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:

Enabling improved GraphQL security on existing projects and new API token behavior

We strongly recommend testing the effects in a sandbox environment before applying the change to your primary environment, as this update cannot be undone.

Β« PreviousNext Β»