Product Changelog
DatoCMS new features, improvements and significant news
More QoL improvements for your team

These days we have worked hard on a couple of exciting features that we will show you later this month. Our roadmap will give you a hint or two ;). Meanwhile, we have published three improvements that we are sure you will appreciate!

First of all, we have hidden some aspects of the deployment environment for users that do not have the role permission to build. For example, the "Publish Now" button and all deployment logs are hidden from those who can't use them.

The second update is about clarity: when you create a modular field with the requirement of only one, the button to add another is hidden for the person editing the content. This feature is present in both modular content and record links.

The third update is the more substantial one: DatoCMS now changes the orientation of the writing in the single line text and multi-line text when you are editing RTL languages in a multilingual field. Arabic, Chinese, and many more are now easier to manage!

Accounts and Users are now merged

Our long-term goal is to make DatoCMS a usable and intuitive product for everyone. For this reason, we decided to merge users and accounts into a single entity that manages all projects from the same space.

We noticed that the differences between users and accounts were creating unnecessary confusion offering very few benefits in return, especially to those who manage multiple projects with different teams.

The workflow will not change for those who are already working on DatoCMS, except for the convenience of a single password for everything, while those who are invited to a project for the first time will first have to register via the DatoCMS dashboard.

In case you have problems accessing a project on DatoCMS, follow the standard password recovery process, and set a new one.

Bulk delete, publish and unpublish records

Look, we've made another Quality of Life improvement to your records management on DatoCMS!

You can now select more than one record in a list and delete, publish or unpublish them in bulk.

As always, if you have questions, feedback, or recommendations for the next updates, drop us a line!

Introduced limit to GraphQL query complexity

To give a more predictable and consistent timing in our GraphQL responses we had to introduce a limit in the query complexity.

To each field required we attach a weight of 1. To fields that need additional queries under the hood, like links, rich_text fields and uploads we attach a weigth of 10.

We have currently limited the complexity to 550, which should be enough for most cases, but if you have any specific concern is happy to help.

Improvements to Netlify, CircleCI and custom webhook integrations

Today we just released some new requested enhacements to our deployment adapters!

The most important one is related to Netlify: you can now specify the Git branch you want to build. This means you no longer have to create two different Netlify sites, one for production and one for staging.

Remember that you can add a netlify.toml file in your repository to customize the headers on a per-branch basis:

# Staging context: all deploys from the staging 
# branch will inherit these environment variables:


With CircleCI, you can now add custom environment variables to use to be available during the build:

And if you're using our custom webhook deployment method, you are now free to specify the exact headers and JSON payload to be sent:

Add existing records in Link's expanded mode (aka embedded forms)

We (finally) made a much requested change to DatoCMS: you can now select existing records in the Embedded forms mode of the Link(s) fields:

While we were at it, we thought it could be cool to add the same From library button also on the compact visualization mode, so you don't always have to rely on auto-completion when you have many items:


Nicer Media Area and bulk delete of assets

We've just made some Quality of Life improvements to your Media Area on DatoCMS!

Small, Medium or Large? Assets can now be previewed in three different sizes, for starters:

Fancy an early spring cleaning? Now you can delete multiple assets in one go (fear not, my friend, all assets related to a record can't be deleted this way):

If you are looking for a more drastic solution, you can select the "Not Used" filter in the Media Area and delete them all with the click of a button:

If you have questions, feedback, or recommendations for the next updates, drop us a line!

Twitter and Facebook share preview now available on SEO fields

Following a great discussion over our Slack channel (thanks Daniel!), we've just improved our SEO field. This is how it looks now:

As you can see, you can now instantly preview how your record will show up on Google, Twitter and Facebook.

The preview is generated based on the values present in the record's SEO meta tags field together with the global SEO settings of your project. Even if the SEO field is not configured, we try to guess reasonable values by inspecting the value of the other record's field.

On your frontend, you can the pull the correct meta tags from our GraphQL CDA with the _seoMetaTags helper method. A similar method exists in all our SSG plugins.

Slugs now auto-generated on existing records

A small but handy change just landed: when you add a slug field to a model, if the model already contained some records, they will get a proper slug generated!

Added `firstPublishedAt` to both CMA and CDA

We just introduced a new meta field to records which represents the first time a record gets published: perfect to use in blogs as the publication date of an article, for example.

You can fetch, filter and order records using _firstPublishedAt on our GraphQL Content Delivery API:

  allBlogPosts(orderBy: [_firstPublishedAt_DESC]) {
    author { name }

The meta field is also present in our CMA, and in the administrative interface: