Skip to main content
Designer

How Paul Seal upgraded Clean Starter kit to work with Umbraco 15

Last week I was able to upgrade my Clean Starter Kit package to work with Umbraco 15.

I didn't do it for Umbraco 14 because some of the key features of Umbraco hadn't been built yet, such as the inline block editing, so when I found that it now works in Umbraco 15, I decided to get Clean Starter Kit working in it. 

This post shows you the steps I took to update the package to make it work with Umbraco 15.

1. Create a new branch

Firstly, I created a new dev/v5 branch of Clean in GitHub

Currently the main branch has v4 which works for Umbraco 13, the Long Term Support version of Umbraco).

2. Update the csproj files

Next I updated my csproj files to point to Umbraco 15 and change a reference from Umbraco.Cms.Web.Backoffice to Umbraco.Cms.Web.Website.

8 Clean.Csproj
1 Clean.Core.Csproj
2 Clean.Site.Csproj
11 Clean.Models.Csproj

3. Update the Program.cs file in the Clean.Site test project

There was only a small change to make to the Program.cs file, it was to remove the line which added the delivery api and the one which uses the installer endpoints.

3 Program.Cs

4. Remove the use of Smidge

Smidge was a package, which used to come with Umbraco, that you could use for bundling and minification. In Umbraco 15, Smidge doesn't ship with Umbraco out of the box anymore, so I decided to remove it from Clean Starter Kit. Instead I just referenced the CSS and JS files from the master.cshtml file.

4 Codesnippetrow.Cshtml
5 Imagecarouselrow.Cshtml
7 Master.Cshtml
6 Viewimports.Cshtml

5. Replace Package Manifest Filter with Package Manifest Reader

This was the part I was worried about because I had heard that you can't register your package with just C# anymore. Clean Starter Kit isn't like a normal package where you are extending the backoffice in some way to add a dashboard or something. It installs some content, media, document types and templates using a package migration. So how was I going to be able to register it just using C#?

I messaged my friend Kevin Jump (inventor of uSync amongst other great packages) he showed me how I can use a new thing called a Package Manifest Reader and the trick was to give it an empty block of JSON and set the other properties in code.

With this technique I was able to remove the Package Manifest Filter file and use a Package Manifest Reader instead. I also had to update my composer to add it in.

10 Cleanmanifestreader.Cs
9 Cleancomposer.Cs

6. Release the package

With all of those changes made, I was able to release the new version of the package to work with Umbraco 15.

If you would like to try out Clean Starter Kit in Umbraco 15 you can use this script to install it

Here is a screenshot of the script the link goes off to.

12 Installation Code Screenshot

Want to learn more about Umbraco?

At ClerksWell, we’re dedicated to unlocking the full potential of Umbraco for your organisation. As an Umbraco Gold Partner and home to 7-time Umbraco MVP Paul Seal, our expert team is equipped to assist you with:

  • Re-platforming to Umbraco
  • Custom CMS design and development
  • Migration to headless setups
  • Third-party integrations and customisations
  • Ongoing support and maintenance
  • Digital marketing and SEO strategies

Whether you’re looking for Umbraco support or need a comprehensive Umbraco health check, we’re here to guide you every step of the way.

Ready to elevate your digital experience? Contact us today and let’s discuss how we can help you thrive with Umbraco!

Profile Pic 2023 Background

Paul Seal

Umbraco Tech Lead

Back to top