Development

5 Hidden Gems in Umbraco 17 You'll Wish You Knew Sooner

Published

Reading Time

4 minutes

Every time Umbraco drops a new release, you get the showy headline features—those are the ones everyone discusses right away in keynotes, on blogs, and all over LinkedIn. But the real quality of life improvements? They hide in the little things.

Umbraco 17 isn’t any different. Underneath the big announcements, you’ll find a handful of tweaks that don’t scream for attention but end up making your daily development work smoother—and sometimes even help out marketers, too.

Here are five of those “wait, this is actually really good” features you probably overlooked.

1. Cleaner, More Predictable Content Delivery API Responses

If you’ve spent any time working headless (or sort of headless), you’ll spot this right away.

Content Delivery API responses in Umbraco 17 are just… more predictable. The property structures make more sense, and you don’t waste as much time tossing in defensive mapping code to handle odd cases.

Sure, it’s not going to knock your socks off. But it smooths things out. And honestly, when your frontend needs reliable JSON, it’s a bigger deal than you’d expect.

Why it’s a gem:
Less time debugging weird response shapes, more time building things that matter.

2. Backoffice Extensions That Don’t Feel Like Hacks

Customizing the backoffice always felt like, “There has to be a better way.” With v17, most of the time, there actually is.

The extension model in this version is finally dialed in. Adding dashboards, custom views, or integrations just fits better with modern frontend workflows. You don’t spend your time wrestling with the framework, and it’s much easier to understand how things fit together.

Why it’s a gem:
Now you can enhance the backoffice without slapping together leftover bits of AngularJS and hoping for the best.

3. Improved Dependency Injection Clarity

This one sneaks by until you go back to old versions.

Service registration and resolution line up with what you’d expect from .NET now—lifetimes are predictable, and you know exactly where things should get wired up.

If you build custom services, composers, or any kind of integration, this clears up a lot of that nagging confusion.

Why it’s a gem:
You stop asking “why is this scoped?” all the time and get to trust your setup a lot more.

4. Subtle Performance Wins in the Backoffice

There’s no flashy feature here—just a bunch of small, smart tweaks that really add up.

Content trees pop up quicker, moving around feels less clunky, and switching between sections doesn’t give you those awkward pauses. On big installs, you’ll feel the difference right away.

Editors might not know why things feel better, but they’ll definitely notice that they do.

Why it’s a gem:
Happier editors means you don’t have to field constant “the CMS is slow” complaints.

5. Better Alignment with Modern .NET Patterns

This isn’t the sort of thing that makes for an impressive demo, but it matters in the long run.

Umbraco 17 continues to ditch its quirky, Umbraco-only conventions and leans more on standard .NET ways of doing things. Configuration, hosting, project structure—it all feels much more familiar if you already know ASP.NET Core.

That makes it easier to get new people started, keeps your codebase cleaner, and stops you from having to explain a bunch of weird exceptions.

Why it’s a gem:
Now your Umbraco project just looks and acts like the rest of your .NET stack—which is exactly what you want.

The takeaway

Umbraco 17 has its big, shiny new features, but it’s the smaller, quieter upgrades you’ll actually notice once you get working.

They’re not headline-worthy, but they reduce headaches, add consistency, and genuinely make life better for developers and editors.

In the end, those little quality-of-life improvements are what make the difference between a CMS you tolerate and one you actually enjoy using.

And if you’ve found even more hidden gems in version 17, odds are they’re the same kind of thing: small changes that quietly make a huge impact.