Filter by creators in the CMS
We've added a small but useful enhancement into the CMS, allowing you to filter records by creator.
Simply add a new filter, and as with all others, find Creator available as a new option.
We've added a small but useful enhancement into the CMS, allowing you to filter records by creator.
Simply add a new filter, and as with all others, find Creator available as a new option.
It was a bit difficult to find where your sidebar plugins ended up in the content record sidebars.
Earlier, you had to open the sidebar, find the little downward pointing arrow and then switch to the view that plugin offered.
It caused a lot of issues for many of you, and wasn't really the best UX, so we've improved it.
Now, simply open the sidebar if its collapsed, and you'll see a tab for each of your sidebar plugins neatly next to one another.
The DatoCMS Marketplace now shows you which plugins are "officially" developed by us with a little icon next to each one.
While this definitely makes it easier to find, official plugins are also our responsibility to maintain and keep up to date: so if something breaks or works unexpectedly, just give us a ping.
They're all categorized as a section within the Marketplace on the website and in the CMS.
And you can easily tell it is an official plugin with the little icon.
Until now, using Visual Editing meant clicking something in your preview and jumping straight to the record that renders it. It only lived in the iframe inside the plugin's Visual tab.
Now you can turn it on in the sidebar preview in the Content tab as well 👀
Click an element in the preview and you land right on /editor/item_types/<id>/items/<id> within the exact field behind it without hunting through the tree.
A few things worth knowing:
It's a per-user toggle, off by default: each editor flips it on for themselves, so it won't change anyone else's setup.
When the toggle is on, the sidebar loads the draft-mode preview URL (that's what visual editing needs to hook into).
If the selected preview link's frontend doesn't support visual editing, the toggle stays visible but disabled, with a tooltip explaining why.
Under the hood it's the same Content Link machinery that already powers the Visual tab, just wired into the sidebar frame, so refer to the docs to set up Visual Editing.
Sometimes all you get from a terminal output is a Record ID and nothing else. Made it kinda hard to find that record in the UI if you wanted to check for something. The filter by ID wasn't the best way, especially if you didn't know the item type.
So we've rolled out the ability to search by ID ✨
Open the UI, click the 🔍, enter the Record ID, and it'll surface right in the UI.
If you've been building on our Real-time API, you know the drill: you fire a mutation, then wait ~1.5–2.5s before the change lands in the browser.
That wasn't very "real time", so we dug into speeding things up, and that wait is gone.
Updates now show up in roughly ⚡️ 100–500ms ⚡️
Get into the docs to implement the Real-time API.
You can now disable Content Link (visual editing) encoding on a per-field basis, right from the field settings. Fields whose exact value matters — slugs, external IDs, keys, anything compared verbatim — can opt out, so the Content Delivery API never wraps their value in invisible visual-editing metadata.
Visual editing lets editors click directly on any element of your live site and jump straight to the field that controls it. It works through steganography: when you request draft content with Content Link enabled, the Content Delivery API embeds invisible Unicode characters into your text fields, encoding which record and field produced each string. Your <ContentLink /> component reads that metadata and paints the clickable overlays. Visually, nothing changes, but that invisible metadata is exactly what you don't want on certain fields.
Because the encoded value carries extra (invisible) characters, it's no longer byte-for-byte identical to what you typed. That's harmless for prose, but it breaks anything that treats a field as a literal:
A slug field with the value about no longer === "about", so routing and equality checks fail.
IDs, keys, and tokens used in comparisons, switch statements, CSS selectors, or data- attributes silently misbehave.
Until now, the fix meant calling stripStega() on the values that needed it. That still works, but it's easy to forget and easy to miss one.
Open any string, multiple-paragraph text, or structured text field's settings, and you'll find a new toggle:
Leave it on for the fields your editors want to click into. Turn it off for the fields that need to stay verbatim, and the CDA will exclude that field from Content Link encoding entirely and the value ships clean, no stripStega() required.
The toggle is enabled by default, so nothing changes for your existing projects unless you opt a field out.
A new content_link_enabled attribute is exposed on the field, defaulting to true.
The opt-out is available on the field types that participate in Content Link encoding today: string, text, and structured_text.
When disabled, the exclusion happens server-side in the Content Delivery API, so it applies no matter which client or framework SDK you use.
We've added a small but meaningful safeguard to DatoCMS accounts: email verification. Before a handful of sensitive actions, we now make sure the email address on your account really belongs to you. It runs quietly in the background, and most of the time you won't even notice it.
We only ask for a verified email before actions that affect other people or move projects between accounts:
Inviting someone to your organization
Transferring a project to another account or organization
Accepting a project that's being transferred to you
Joining a project or organization you've been invited to
When you sign up, we send a confirmation email. Click the link inside and you're verified for good.
If you reach one of these actions before you've verified, we'll pause and send that email for you automatically (or resend it, if it's been a while). Click the link, and we'll pick up right where you left off, with nothing to redo and nothing to start over. You'll only go through this once.
Dark mode is now available in your DatoCMS dashboard, too. Manage your account, projects, and billing in a theme that's easier on the eyes during long sessions.
Choose System, Light, or Dark from the menu under your avatar. Your preference is saved to your account, and the dashboard follows your OS setting until you pick a side.
The version history of a record now doubles as a publication timeline. Every version tells you not just when it was created, but the exact window it was actually published (and a green dot shows you which version is currently published).
Before this, the version history panel only showed when a version was saved and by whom. This change makes it simpler to understand when they were published.
Open any record's history, and each version now carries its publication info under the timestamp:
Live since X — this version is published and currently live, with no end in sight.
Live from X → Y — this version was public for a stretch, then superseded.
Live on X, HH:MM → HH:MM — published and replaced the same day, down to the minute.
A redesigned visual indication ties it all together:
A green "live" dot marks the version that's currently published.
A muted dot marks versions that were live at some point in the past.
Each entry now credits the editor who made the change with a "Edited by …" so the timeline reads as a full audit trail at a glance.
The publication ranges are backed by new metadata on item versions — published_from and published_until — exposed through the Content Management API. The dashboard reads them via @datocms/cma-client 5.5.1 or higher.
This is a forward-looking history: we don't retroactively reconstruct intervals for versions that were already live when the feature shipped.
If you publish a version, unpublish, then re-publish that same version with no edit in between, the new published_from overwrites the previous one and published_until is cleared. The version reflects its latest interval rather than a full multi-interval log. In practice most workflows save an intermediate version before re-publishing, which produces a fresh row and preserves the earlier one.