New in Craft CMS 5.3
Craft 5.3 came out two days ago. The headline is the new Link field, but the more useful half of this release is cleanup work for everyone still recovering from the Craft 4 migration.
This article is over 2 years old. Features and approaches described here may have changed since.
The Link field
The Link field replaces the old URL field type. Instead of storing a raw URL, it handles several link types: URLs, email addresses, phone numbers, and relations to entries, assets, and categories. `craft\fields\Url` is now a deprecated alias for it.
The first release leaves out things you'd expect. There's no label input, so if an editor needs to set a button label, you still add a Plain Text field next to it. No target setting, no class setting.
Which is to say it doesn't replace Hyper yet. I don't use it myself. That's a weaker case than my usual argument, since a link field isn't content modeling the way Neo or Vizy are, and swapping one out later costs you a few fields rather than your whole structure. But the habit holds: I’d rather wait for something to land in core, and I spend a few years without features that other people already have. The Link field is Craft starting to close one of those gaps.
Cleaning up after entrification
When you upgrade a Craft 4 project, every Matrix block type becomes an entry type. A "heading" block type used in five Matrix fields doesn't become one entry type. It becomes five, and they all have similar names.
5.3 is largely about that. There are three new CLI commands: `fields/merge`, `fields/auto-merge`, and `entry-types/merge`. Entry types are no longer required to have unique names, which removes a constraint that made the cleanup harder than it needed to be. Entry type selects in section and Matrix field settings now show handles alongside names, so you can tell near-identical entries apart. Entry types created from Matrix block types no longer show the Slug field by default after an upgrade. And custom fields are now soft-deleted initially, which is the safety net you want before running a merge command on a live project.
My own Craft 5 migration ran cleanly, so I've used none of this. That's worth saying rather than pretending otherwise: if your project came through in one piece, 5.3 hands you tools for a problem you don't have. If it didn't, this is the release you've been waiting for since Craft 5 shipped, and I'd still test the merge commands somewhere other than production first.
Multi-instance relation fields
Relation fields can now appear multiple times in the same field layout. Craft 5.0 brought this to most field types and left relation fields out, so this closes that gap.
Moving entries between sections
A new "Move to…" bulk action moves entries between sections, as long as the target section allows the same entry type. Restructuring a content model used to mean recreating content by hand or writing a migration.
Translatable relation fields
Relation fields now have the full Translation Method settings, replacing the old "Manage relations on a per-site basis" toggle. Same options as every other field, which is the point.
Two things further down the changelog
A bug has been fixed in which element operations could deadlock when several authors worked simultaneously. That's the collaborative editing work from 4.5 meeting reality, and it's the kind of fix you only see if you've been on the wrong side of it.
And in the Extensibility section, one line: `craft\enums\CmsEdition\::Enterprise`, alongside core support for SSO, marked Enterprise only. In the pricing discussion back in February, one developer argued that Craft was losing enterprise pitches to Umbraco because it had no comparable offer: no onboarding, no training, no bundled support. That conversation was mostly about the other end of the scale, about whether there should be something between free and $399. Five months later, the movement is visible at the top end instead.
Conclusion
The Link field will get the attention, and it should, because it's overdue and only half-finished.
But if you're running a Craft 4 project you haven't migrated yet, the merge commands are the reason to read the changelog. They don't make entrification clean. They make the mess afterwards survivable.