Lead Software Engineer & 3× Umbraco MVP

Codegarden 2025

This year's annual Umbraco developer conference gathered for its 20th instalment, bigger and better than ever.

At the start of my Codegarden 2024 reflection, I said that every year is a different experience—and this year was no different to that! My fourth time attending, third as an MVP, some other exciting personal news (more on that later...) and the event's 20th anniversary was a celebration of everything that makes Umbraco what it is.

Friendly faces everywhere

My week kicked off flying out of Manchester on the Sunday afternoon, along with Jen from Moriyama and Rich from Reading Room. It's always nice to spot a friendly face or two around the airport and to travel together.

With a lot of other MVPs getting in on the Sunday, there was only one destination I wanted to head to—Warpigs! If you've never been, it's an American BBQ restaurant in Copenhagen's meatpacking district and has become a bit of an Umbraco institution; Umbraco Spark in 2023 also designed their conference t-shirts based on a Warpigs one!

There was a WhatsApp group for people to be able to organise travel this year, so as soon as we landed there were messages pinging about where people were at. Some were planning on staying there until early evening so I pinged to say we had landed, grabbed my bag, found Sven near the airport ticket machines and hopped on a train to Copenhagen central station. We dropped our bags in a locker, walked ~10 minutes round the corner and found a table full of other friendly Umbracians.

In the queue at Warpigs—my eyes were on the Trooper Tray 👀

In the queue at Warpigs—my eyes were on the Trooper Tray 👀

The Trooper Tray! A little bit of everything: brisket, pulled pork, hot links, coleslaw and mac 'n' cheese

The Trooper Tray! A little bit of everything: brisket, pulled pork, hot links, coleslaw and mac 'n' cheese

A couple of hours and a beer or two later, the table of us headed off for a train to Odense, got checked into our hotels and had an early night ready for the next day.

The first ever MVP Summit

The next morning, and a short walk to Coworking Plus, meant the start of the first ever MVP Summit! I've been an Umbraco MVP for three years now, and this is the first time an event of this type has happened.

We all got presented with floppy disks with our names on, MVP lanyards and pin badges representing the number of years we've been an MVP. This is a great touch considering how some of the other tech MVP communities celebrate their people.

My floppy disk lanyard badge and three MVP badges

My floppy disk lanyard badge and three MVP badges

62 MVPs gathered together, along with the DevRel team and representatives from Product & Engineering, to discuss topics that are important to the community, including developing extensions for the (not-so-new-anymore) backoffice, helping new people get involved in the community, what might hold people back from migrating to v17 and more.

One of my favourite things about the backoffice conversation was the revelation that there was a "hidden" examples folder which is now available for everyone to use to try out different backoffice extension points in a much easier way!

One of the circle discussion groups that took place during the MVP Summit

One of the circle discussion groups that took place during the MVP Summit

I found the format of the day really enjoyable as well for a number of reasons, but the two that really spring to mind are that:

  1. This time set aside before Codegarden (although making the week longer) was great for catching up and chatting to people, especially those who I only get to see once a year!
  2. The conversations got to include lots of different voices from the community, from long-term MVPs right up to people who were awarded this year. I felt like such a fly on the wall being able to hear people who have been around forever sharing their ideas with folk who are brand new, and it's a brilliant thing to foster.

I also got time to hack about with Umbraco a little bit as well as eating some delicious food and enjoying a couple of beers on the space's roof terrace.

Me, Jan and Nurhak hanging out before the MVP Summit dinner

Me, Jan and Nurhak hanging out before the MVP Summit dinner

After the dinner and a Kahoot quiz, people trickled off slowly to get their rest ready for the next big day!

Workshops and the pre-party

I decided to get out early doors on Tuesday morning and get a run in, and managed to do a nice 10K loop of Odense. It was nice to see a few more sights than just the usual hotels, train station and DOK5000.

One of the Odense side streets I ended up running down on my 10K run

One of the Odense side streets I ended up running down on my 10K run

The second day of the MVP Summit was slightly shorter and featured a round up of all the things we had discussed. It was encouraging to hear recaps of the conversations I hadn't been in; they sounded just as productive as the rest! Having DevRel and Product & Engineering there meant it felt like we were really being heard. I know that in some of my sessions, Andy Butland was taking a lot of notes and Niels Lyngsø was asking some great questions about how we actually build things in the backoffice.

A short jaunt back to the hotel for a freshen up, and a little wander round the corner to find the Odense Boldklub fan shop and pick up a shirt, it was back to HQ for an afternoon of workshops.

I had already registered for Adam and Rich’s Astro workshop which I was really looking forward to after getting a little preview of it earlier in the year. This was definitely my first choice after blogging about Astro, speaking about it and helping contribute to documentation on the official Astro docs.

The Astro workshop in the "Moose" room at Umbraco HQ.

The Astro workshop in the "Moose" room at Umbraco HQ.

We had an extra special guest in Janae Cram who joined to chat about technical writing, and Adam had even organised a delivery of kanelsnegle (“cinnamon snails”)

A box full of delicious kanelsnegle 🤤

A box full of delicious kanelsnegle 🤤

Another trip back to the hotel to drop stuff off and then it was straight back to one of my favourite places in Odense—Storms Pakhus! A converted warehouse full of food vendors and bars; this time my food choice was Greek gyros. 🤤

The inside of Storms Pakhus

The inside of Storms Pakhus

My mixed gyros platter

My mixed gyros platter

Again we were joined over a couple of hours by more Umbracians; we filled a number of outdoor tables and lots of catching up took place. Once people were ready, groups started to wander back to HQ ready for the pre-party.

This year was pirate themed, although it didn’t seem like as many people had dressed up as previous years. I found more and more faces that I hadn’t seen for a while, and again decided to be sensible this night and head back to the hotel as a reasonable time ready for the first proper day of the conference.

Compose, Awards and the Hallway Track

The first day of Codegarden was here! We gathered at the venue early, greeted by a coffee truck, high fives, music, a saxophone player and a unicorn (yes, really) and started off the day. The keynote included an intro from new(ish) CEO Mats Persson, product announcements from CTO Filip Bech-Larsen and MVP announcements from VP of DevRel Emma Burstow.

The main stage at Codegarden just before the start of the keynote

The main stage at Codegarden just before the start of the keynote

The biggest two product announcements of the morning were the introduction of Umbraco Compose and the community MCP Server becoming the official Umbraco one!

Whilst a lot of people (including me) were in agreement that the product side felt a bit too long this year, I have to highlight my favourite moment of the morning. Earlier this year we lost an amazing MVP: Terrence Burridge. If you went to any UK meetup in recent years, you would have met Terrence. Emma shared a little about him and what a loss it was to our community, then the room joined in with a standing ovation in his honour and it’s fair to say it definitely tugged on the heart strings and was well deserved.

You can watch that moment here starting at 1:28:54...

Play

I stayed at the main stage and really enjoyed Andy and Bolette's "Releases, Realities and Rewriting the Umbraco Lore"—a great deep dive into some old caveats and assumptions about Umbraco that are no longer true.

The rest of the day, I found myself at a loose end and tried to just enjoy the atmosphere. Since losing my son Miles, I definitely have not had the same social battery that I used to have. Thankfully I found myself spending some time at the DevRel Den and getting to chat to people there, including new DevRel team member Mathilde Høst and the Brailsfords.

Checking back over the schedule, I realise didn’t catch a lot of talks on Wednesday but did spend time in the “hallway track”, sitting out in the sun and chatting to people.

I did venture around the venues at a few points and really enjoyed the addition of the teepee in the other space. And the popcorn machine! 🍿

The inside of teepee tent whilst Matt and Phil were showing off their MCP server

The inside of teepee tent whilst Matt and Phil were showing off their MCP server

One other thing to highlight this year is the food—again the majority of recap blogs you will read will likely say that the food was very good this year!

The day rolled on and we enjoyed more food, played some hammerschlagen 🔨🪵 and got ready for the evening’s Umbraco Awards.

I was very keen for the awards as the main package I work on, BlockPreview, was up for an award! Sadly it didn’t win but SEOToolkit was a very deserving winner, and now BlockPreview has a lovely shiny badge on the Marketplace.

After the awards I headed back to the hotel (check me out being sensible again!) and got some good rest ready for the final day.

Running, MCPing, boating, bingo-ing and dancing

Waking up refreshed and ready to go, I joined the #cgRunners outside of the Plaza hotel at 7am and got to take in a leisurely 4K run around Munke Mose, one of Odense's parks.

The Wednesday group of #cgRunners... did you even take part if you weren't in the photo!?

The Wednesday group of #cgRunners... did you even take part if you weren't in the photo!?

After this, a freshen up, and a walk back to DOK5000 it was time for a day full of talks I was really excited to see! I felt different this day to the Wednesday, maybe it was because of the good night's sleep and the run...

First up was Jason Wodicka's "Intentionally building community through ritual". I have really enjoyed Jason's Codegarden talks and this was no different—it got me thinking about the things we do day-in-day-out like standups, and made me really think about the amount of high fives we give as a community 😂

Straight after this was a toss up between three talks, but I wanted to go and support Jen Wolke and her talk "Into the Umbazon" as she was featuring not one but two of the packages I help maintain! (BlockPreview and the Sustainability one). She took us on a tour of the jungle of packages in the Marketplace and highlighted a few of her favourites and some standout ones. Some of the packages even had their own 3D printed "idols" to find to represent them, including BlockPreview! I found Jen at lunch and asked very nicely if I could have the idol and she kindly said yes. Look how cool this is!!

My new BlockPreview idol courtesy of Jen Wolke

My new BlockPreview idol courtesy of Jen Wolke

At lunch this year I had the realisation that I had spent a good chunk of time with some of the US MVP cohort, namely Janae Cram and Heather Floyd. After four times of being at Codegarden, a number of community team visits and UK Fests, it's mad to think you can still be getting to know people you've seen for the past few years!

After lunch was one of the most anticipated talks of the day—"From Clicks to Commands: AI for Editors, Developers and Everyone Else" with Phil Whittaker and Matt Wise. In CTO Filip's keynote it was announced that the MCP Server that Phil and Matt had built was going to become the official MCP server for Umbraco, and this talk was a bit about the what, the why and the how.

In the standing room only talk we got to see really cool real world examples of using natural language to query and update the backoffice. A standout one for me was asking Claude to update the SEO properties of the demo site they had set up to match some of the latest best practice and sure enough it went in, added useful descriptions, set max lengths and returned all the information that it had updated! There's a good reason that MCP servers are a hot topic right now as they finally connect up useful natural language tools to the software we're using every day.

It's hard for me to reconcile it 100% with my sustainability hat on as it's been well documented how bad AI and LLMs are for the environment, but I cannot deny the usefulness of being able to talk to Umbraco using natural language and having it update things for you.

A short wander back into the main stage and I was ready for Heather Floyd's "Evolution of Gridded Content in Umbraco". If you hadn't gathered already, I think the Block Grid is one of the best parts of Umbraco and deserves to be celebrated, so I loved Heather's deep dive into the history of it and where we've come from (especially the mentions of Archetype and Vorto!)

The afternoon continued on and I was yet to go and visit the fabled 'boat trip' that appeared on the venue map. After wandering towards the Unicorn stage I could hear the pounding of dance music coming from a small, bright orange dinghy that was pootling around Odense harbour and knew that was the boat!

I ended up making a few trips on it, enjoying a beer, sunshine, music and good company taking in the sights the harbour had to offer.

Enjoying a beer on the party boat!

Enjoying a beer on the party boat!

umbraCoffee was next on the agenda and with only one live episode happening this year, it was a great recap of the whole event up to this point. It's always fun being in a live audience for it and joining the chat on YouTube on my phone to see who's tuning in from across the world.

More chatting, drinking, naily log and enjoying the sunshine happened until we were all summoned for the evening's programme and dinner. I grabbed some seats with Nurhak Kaya, Ian Grieve, Heather Floyd and Allen from the HQ DevRel team.

My new (temporary) #h5yr tattoo

My new (temporary) #h5yr tattoo

I can neither confirm nor deny what happened for the rest of the evening—it may or may not have included one or all of the following things:

  • Bingo (or is it Bungo?)
  • Eric's mom
  • Temporary tattoos
  • A giant cake
  • A Hammond organ
  • Musical chairs
  • Slave & Eagle
  • Cheerleaders
  • A preach (#NotACult)

Once the entertainment was out of the way, the room gets transformed into a dancefloor and the party begins. This is one of my favourite parts of the evening every year and although people took a while to decide to come and dance, we did certainly dance the night away!

Time to say goodbye

To say that this week was longer than normal it was crazy how quickly Friday morning rolled around! I checked out of the hotel, dropped my luggage at the train station then walked up to DOK5000. The venue was definitely quieter than the past few days, which meant shorter lines at the coffee cart for my regular oat flat white!

I grabbed a pastry and headed for where the hackathon was going to be set up and ended up just chatting to Dean Leigh for a good while about packages, work and life.

News came in around the time of the hackathon starting that some trains between Copenhagen central and the airport were affected so I decided to head off earlier and jump on a train as soon as I could. Once again there were many friendly faces waiting for trains, and after a standing only trip into Copenhagen we successfully navigated the Metro (just in time for news coming in that Codegarden 2026 is moving back to Copenhagen! We were getting our practice in early)

Once you see this guy you know you're on your way out of Denmark

Once you see this guy you know you're on your way out of Denmark

A short trip through security and duty free meant heading for some food at Gasoline Grill, definitely one of the go-tos at the airport! People slowly started heading off in dribs and drabs to catch their flights and saying their goodbyes on the WhatsApp chat and before I knew it I was back in Manchester being picked up by my wife!

A different Codegarden once again...

I said right at the start of the blog that my experience of Codegarden was different again this year, and you might be wondering why exactly. Well, just before travelling to Odense for this amazing week, I was offered a job at Umbraco HQ, working in the Commercial Products team!

I'll be starting working for Umbraco on the 1st September and couldn't be more exited! After everything that's gone on in my personal life in recent months I'm definitely ready for a change and this is a really exciting one to move out of agency world and into building products! I'll also be working on the main umbraco.com website so not completely away from using Umbraco day-to-day to build sites.

I got to meet all of my new team members over the course of the week and had some lovely conversations with people saying how excited they are that I'm joining HQ. I'm joining just in time for Company Week in September as well so I'll be back out to Denmark very soon to meet more of my new colleagues.


Well, that was the week that was! My last time being allowed to be an MVP, and a very different Codegarden week once again, but a very good one that's taken me almost a month to reflect on.

See you in Copenhagen for Codegarden 2026!

Play