Issues

Umbraco: The Next Chapter

Or, an open love letter to the Umbraco community of tomorrow…

With 100 issues in the back catalogue, it would be remiss not to look to the future and the next 100 issues. Or more to say – what might the Umbraco ecosystem look like over the next 10 years or so?

This is obviously a question that could be considered from a thousand different angles… I could write about the exciting technological paths that are being paved to shiny new destinations, I could write about the boots on the ground in the community teams, or the wider technical tides and where they might carry Umbraco in the future. And don’t get me wrong, all of these would be fascinating articles – but I’m feeling somewhat nostalgic as I’m writing this, so indulge me with a little bit of everything and a little bit of all the things I would wish for us going forward.

Flexible and Intelligent

New Back-Office and Web Components

So, first up it would be absolutely unforgivable not to get excited about the upcoming new Umbraco back-office: hyped for v14 in 2024. If you’ve missed the announcements, v14 is currently planned to contain a complete overhaul of the existing back-office with the current implementation re-architected using Web Components, Lit and Vite, bidding a fond but firm farewell to AngularJS 👋. If you haven’t had a chance to have a look, or even a play, you can get started with nightly builds here and read more about getting started with v14 here

One of the best things (in my opinion - and it is worth noting that this caveat this applies to everything that you are about to read) is the flexibility the new back-office will be giving us the developers, and therefore any users, editors or administrators who look to us to make their jobs easier. There are a range of attractive reasons to use Web Components, such as HTML standardisation, building encapsulated components which are primed for sharing and re-use, and using building blocks which inherently lack complex dependencies. However, the choice in how you want to take your own Umbraco back-office extensions forwards if up to you: you can build your custom packages or dashboards in whatever is your current preferred JavaScript framework, even AngularJS, if you’re feeling nostalgic (not recommended!).

On top of this flexibility, almost the entire back-office has also been designed in an extensible, componentised approach. For example, the Context API allows for management of, unsurprisingly, contained contexts, such as the Variant Context. The Variant Context contains sets of property editor UIs which all live within the same scope, and around them a Workspace Context would contain a set of Variant Contexts, meaning that you can write your extension and target it at the specific wrapper that needs to encapsulate that functionality. Documentation for this is still a little bit of a work in progress just now, but Niels Lyngsø is currently doing a fantastic talk entitled “Mounting your UI in the New Back-office” so if you’re lucky enough to be crossing paths with him at a meet-up or the UK Fest ‘23 then definitely head along for a listen.

Another exciting new development is the introduction of a Storybook library to ensure styling consistency and testability in the back-office. This will be a fantastic resource for building back-office extensions and packages with some degree of confidence that future upgrades or changes won’t inadvertently cause chaos with your Umbraco customisations. Also, having a bank of components and styles to peruse should substantially speed-up development time for new custom back-office extensions.

Delivery APIs and Fun Times

If v14 sounds like it’s too far away, there are plenty of shiny new things to play with in the current releases of v12 (and upcoming v13) - namely the new suite of delivery APIs that give headless powers out of the box. Built-in Content and Media Delivery APIs give new flexibility to developers who can design back-office experiences and data structures which can be consumed in multiple different ways. Read more about them and how to configure the built-in APIs in the docs here. It is worth noting that satellite packages have also been released inline with the built-in delivery APIs, allowing for Umbraco Forms and Commerce packages to also be delivered headlessly. 

There are plenty of options for extending and converting the data that will be stored in the document types in Umbraco, including custom property editor support and extending the querying functionality. These extensions allow developers to control how data is processed and output with minimal light touch.

Furthermore, there are even more exciting things coming soon in the next few minor (and major) releases. These include functionality such as webhooks, output caching, limitations on what data is handed back via the API which will give front-end developers some relative power over the shape of the data they are expecting (although probably not to the extent of GraphQL!).

Suffice to say, it feels like a really exciting time to be an Umbraco developer just now!

Sustainable, Accessible, and Diverse

Another area of development that shines a bright light into the future of Umbraco just now  is the work being planned and supported by the various community teams. These are teams which are operating with one metaphorical foot with HQ and one in the community.

There is so much amazing work being done by the community teams that it would be implausible to fit it all into this article. But some of the fantastic endeavours thus far include the sustainability challenge launched by Lasse Fredslund and the Sustainability Team, as well as a living guide to best practices for creating more sustainable systems. The DEI team has been making huge strides in normalising the representation of diverse faces at events, meet-ups and conferences; they have worked hard to listen to what the community is saying, both inside Umbraco and in the wider .NET sphere, and continue to persevere behind the scenes to create truly safe spaces where people can ask questions and grow without judgement. The accessibility team continues to go from strength to strength, with the recent UMBRAAD event really showcasing the passion within the community to make the product accessible to as many individuals as possible. Have a look at the Umbraco accessibility audit list to see how much work is going into these endeavours - and even find something to help out with! I could keep going for at least another article on this, because there’s a lot of community teams doing a lot of important work, but suffice to say there’s a *lot* going on and you should definitely have a look at what’s being documented on the Umbraco blog.

It feels like we are working toward a future where the daily responsibilities of a developer include not just writing functional and performant code, but also building systems that are accessible and sustainable, cultivating teams that are made-up of diverse people, and owning a small portion of the responsibility for what it means to make the world an incrementally better place. Or that is to say: what it really means to be an active part of a global community!

Honest and Rooted

Okay, so now I might get a little soppy in things that I personally would wish for the Umbraco community over the next 10 years. Of course, I wish for all the normal things like eccentric CodeGardens, inspiring Umbraco Sparks and cosy CodeCabins brimming with community-togetherness. But I also wish for an Umbraco that stays grounded and in touch and honest; one who owns mistakes, leads compassionately from the front and takes risks when necessary.

I would definitely wish for that inimitable community spirit to persevere, to keep creating these wonderful enthusiasts and ambassadors and boundary spanners. (For anyone who didn’t make it along to my talk on being part of a compassionate open-source community, a boundary spanner is someone who networks across multiple different domains within a community; for example, a meet-up host, community team member and developer team lead - these are people who contribute to community health and stability, have multiple perspectives and oil the gears of communication on multiple levels.) Essentially, my wish for the Umbraco community is for more of the same from the last 10 years, only on a bolder, wider and brighter stage.

Forever friendly

Looking back to the very first issue, Kyle wrote a wonderful piece about his experiences at an Umbraco event, and in it he refers to the people within the community as, “just so… nice”. 100 issues on, I would like to expand on that thought a little further…

The people you will meet in the Umbraco community are some of the nicest people you will ever meet, but it’s a special kind of nice. It’s not the “meaningless nice” of passing the time of day, nor the “empty nice” of a polite smile or fleeting interaction. It’s not the “delicate nice” of necessary civility and professional courtesy, and certainly not the “ineffective nice” of the path of least resistance. Sure, all of those things exist within the range of community interactions, as they do within the spectrum of all human interactions, but the water runs much, much deeper than that.

The Umbraco community is nice in a way that feeds an open furnace of creativity, motivation and engagement; the kind of nice that draws in a tide to raise all boats. It’s the nice that gives you warmth when you’re chilled with anxiety; the flavour of nice that makes you want to try one more time instead of giving up. It’s like finding a torchlit parade of friendly faces when you’ve been wandering alone in the dark.

So, here’s to another 10 years of powering web development advancements with the nicest people in the business, and building projects that are friendly both inside and out.

Laura Weatherhead

Laura is a full-stack Developer at Spun and works on a contract-basis out of Canterbury, UK. She has been working with Umbraco since 2012, a Candid Contributions podcast host and Umbraco MVP. When she's not being challenged by her computer she is an occasional amateur acrobat and infrequent artist.

comments powered by Disqus