Why I Have Still Stuck Around in the Umbraco Community After All These Years

Hey everyone! Guess what? I’ve just received this years Umbraco MVP award! 🎉 It feels surreal to be honoured once again, and I wanted to take a moment to share why this means so much to me and why I’ve been dedicated to Umbraco for nearly two decades.

Why I’m Still Hooked on Umbraco After 20 Years

You might wonder why, after all this time, I’m still as enthusiastic about Umbraco as I was when I started. Well, it’s pretty simple:

Community Vibes

The Umbraco community is second to none. The camaraderie, the sharing of knowledge, and the willingness to help each other out have kept me hooked. It’s not just about coding; it’s about connecting with people who share the same passion.

Ever-Evolving Platform

Umbraco has evolved significantly over the years, constantly adapting and improving. From the days of version 4 to the latest V14 “Bellissima,” it’s been an exciting journey of growth and innovation. Each update brings new challenges and opportunities to learn and improve as a developer.

Developer Experience (DX): Improving the Developer Experience has always been at the heart of my contributions. Whether it’s creating packages like “Examine Peek” for V14 or sharing quick tips on customizing the login screen, enhancing DX is what drives me. It’s about making life easier for fellow developers and seeing them succeed.

Weren’t you already a Lifetime MVP ?!

This was a question that came up a few times during CodeGarden. Now, some of you might remember that I was awarded a lifetime MVP some time ago. And while that’s a great honour, let’s be honest, it was under the old management. Does it even count? 😉

Speaking of lifetime MVPs, I guess I can now proudly say that I hold a lifetime MVP+1! Which means, in the most official of capacities, I will continue to be an MVP one year after I die. I mean, who wouldn’t want an award that outlasts them? 😆

Just kidding, of course. But seriously, every recognition is special, and it keeps me motivated to keep contributing to this amazing community.

Staying Humble and Grateful

Receiving the MVP award again is incredibly humbling. It’s a testament to the amazing support from the community and the collaborative spirit we all share. I want to extend a huge thank you to everyone who’s been part of this journey. Your support, feedback, and camaraderie are what make all the late-night coding sessions and bug hunts worthwhile.

Looking Ahead

As we move forward, I’m excited about the future of Umbraco and the community. Whether it’s through new projects, sharing knowledge on my blog, or just having a chat with fellow Umbracians, I look forward to many more years of collaboration and innovation.

Thank you once again for this incredible honour. Here’s to many more years of Umbraco magic! Stay curious, keep coding, and remember: the community is what makes it all worthwhile.

Cheers,
Warren 🥰

Automate Umbraco Project Setup Using GitHub Template Repositories and Actions

Following up from my last blog post on using a Powershell script to automate creating an Umbraco project setup for package development. I wanted to hack and experiment to see if I could take this concept one step further, by using Github’s concept of Template repositories and the power of GitHub’s Actions I can then simplify this concept even further and create the same setup as before by simply just specifying a GitHub repository name.

How do I create a new GitHub repo from this template?

You can visit the repository I setup to be a GitHub Template and click the Use this template green button top right of the repository page, where this will kick off the GitHub Action which will create the .NET Solution, Umbraco RCL project, Umbraco test website project and the TypeScript project setup with Vite and the Umbraco CMS dev dependency all ready to go.

A screenshot of where to find the Use this template button on GitHub

Or a quicker alternative is to use this deeplink that simply asks for your new repository name and what account or organisation to create the repository.

If you can think of a neat shortcut domain for me to use to this deep link let me know 🙂

Now let’s see it in action:

You can see the GitHub Actions run output here if you are curious on what it will do:

How does it work?

This works by having a GitHub repository with a GitHub Action YML file configured to run on every single commit, as the first time the repository is created from the template repository it will automatically run the GitHub Action for us.

However to avoid the GitHub Action running again and again after the initial commit to create the repository, we use the GitHub CLI to disable the action like so:

# We only ever to want to run this once for the repo created from this template so we disable the workflow
- name: Disable this workflow now we are done
  run: gh workflow disable Repo-Creation
  env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

For this step in our GitHub action to work, we need to ensure the Action run has the correct permissions like so, in order for it to update the GitHub Action and the contents permission in order to do a git commit with the command line in a later on step.

# Reference https://docs.github.com/en/actions/security-guides/automatic-token-authentication
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
# Need to set the permissions to disable this action once we are done
# So its only ever run one time
permissions:
  actions: write
  contents: write

One final piece of the puzzle is that to add a conditional if statement to part of the GitHub Action in order to ensure only the child repositories created from the template run the action and the main template repository does not also trigger it, which is done like so:

# We will only run this action when this repository isn't the
# template repository
if: >-
  ${{ !github.event.repository.is_template }}

So go forth and make your own GitHub template repositories or use this one to kick start your next Umbraco package/project idea.