This year at Codegarden, Nathan Woulfe, Ronald Barendse and I ran a four-hour workshop called "We Need to Go Deeper: Extending Umbraco's Extensions" The good news for everyone who wasn't in the room: we made the whole thing public, so let's take a look at what it is and how you can run through it yourself. π»
What it is
Instead of the usual slides-and-follow-along, we turned the room into an escape room. You work through coding quests across three real Umbraco products (Engage, Workflow and Deploy), and every quest you crack hands you a fragment of a bigger puzzle.
The not-so-hidden goal of the game: get you comfortable going deeper into the Umbraco v17 backoffice than you normally would. Past "install a package" and into the extension registry, manifests, entry points and the TypeScript that actually makes an extension tick. No prior extension-dev experience needed.
Six quests, two per product, each time-boxed to about 15 to 20 minutes and ramping from easy to medium, plus two bonus quests if you're quick. The three surfaces you'll extend:
- Engage: analytics, profiles and segments.
- Workflow: workspace integration.
- Deploy: entity actions and the environments API.
How it's built
Here's the bit I'm quietly proud of: we built the whole thing backwards. We wrote the full working end-state first, then carved it into quest branches by reverting scoped commits. The result is eight branches forming an additive chain, quest-1-start through quest-7-start, plus final, where each branch carries the solution to the previous quest plus the starter for the next one.
Neat side effect: if you get truly stuck, merging in the next branch pulls the solution and lets you keep moving. Did that take a bit of fiddling to get right? Maybe a little π«£
Try it yourself
We've made the repository public, so no Codegarden ticket required and nobody standing over your shoulder. Clone it yourself and check out the first quest!
From there the README walks you through booting the project (Docker or your own SQL Server, .NET 10 and Node 22). Each quest has a brief under the quests/ folder telling you which file to edit and what it should look like when it works, with hints that escalate from gentle to pointed for when you're stuck.
π Have a go here: https://github.com/cornehoskam/Workshop-ExtendingUmbracosExtensions
Wrapping up
A four-hour escape room from Copenhagen, now something anyone can clone and work through on a quiet afternoon. Whether you build on Engage, Workflow, Deploy or your own package, I hope it gives you a few ideas for your own extension work.
Huge thanks to Ronald Barendse and Nathan Woulfe for building this with me, and to everyone who spent four hours of their Codegarden deep in the backoffice with us. π
If you've made it all the way to the bottom, thank you for your interest! If there's anything you'd like to learn more about, feel free to contact me over at my socials available at the Contact page. Are you going to try the workshop yourself? Let me know how far you get π