How to disable the Umbraco V14 Getting Started Dashboard

With Umbraco V14 fast approaching its release date, I wanted to share a quick tip with the wider Umbraco community on how you can disable/remove the ‘Getting Started‘ dashboard from Umbraco that is typically used to push marketing material, such as training or upcoming events. Whilst this is OK for us developers and agencies whilst developing a solution for a client, we typically don’t want to show this information and marketing material to the end client that we deliver our solution to.

A screenshot of a default Umbraco V14 install showing the getting started dashboard built into Umbraco.

So with these couple of files placed inside your Umbraco V14 site, you are able to disable and remove this dashboard.

Bye bye dashboard 👋

First thing we need to do is to create a folder called App_Plugins at the root of our Umbraco site files and then in turn create a subdirectory called Tweaks.

The first file we need to create is our package-manifest.json with the following contents

{
    "$schema": "../../umbraco-package-schema.json",
    "name": "Disable Getting Started Dashboard",
    "id": "disable.getting-started-dashboard.package",
    "allowTelemetry": false,
    "version": "1.0.0",
    "extensions": [
        {
            "type": "entryPoint",
            "alias": "disable.getting-started-dashboard.entrypoint",
            "name": "Disable Getting Started Dashboard Entrypoint",
            "js": "/App_Plugins/Tweaks/disable.getting-started-dashboard.js"
        }
    ]
}

With this package manifest file we are then instructing Umbraco to use a Javascript file as an entrypoint, where we will write our code to find the registered dashboard and then remove it.

So let’s create our JavaScript file called disable.getting-started-dashboard.js inside the App_Plugins/Tweaks/ folder. With this Javascript file we can then use it to remove the dashboard using the extensionRegistry methods isRegistered to check if it has been registered already and exists and if so we can then use the method unregister to remove it.

export const onInit = (_host, extensionRegistry) => {
    if(extensionRegistry.isRegistered('Umb.Dashboard.UmbracoNews')){
        console.log('Remove the welcome/marketing dashboard from Umbraco backoffice');
        extensionRegistry.unregister('Umb.Dashboard.UmbracoNews');
    }
};

Tada it’s disappeared

And with that simple bit of magic, our party to trick to remove the marketing focused dashboard is complete.

A screenshot of Umbraco V14 after our code is applied to show the ‘Getting Started’ dashaboard has been removed.

So go forth and reuse this in your own solutions if you need to, or be inspired on how you can remove other extensions registered by Umbraco or other packages.

Update

On LinkedIn I received a helpful and friendly comment from Jacob one of the developers working on the new WebComponent based backoffice who said this:

Jacob Overgaard: Great tip, Warren. You may want to run the "exclude" function instead of "unregister" since you technically don't know if the system dashboard has been registered yet (or will be in the future). Exclude puts in a persistent filter and you don't need to check if the dashboard has already been registered

So let’s update our small piece of JavaScript to do exactly that:

export const onInit = (_host, extensionRegistry) => {
    console.log('Remove the welcome/marketing dashboard from Umbraco backoffice');
    extensionRegistry.exclude('Umb.Dashboard.UmbracoNews');
};

Thanks Jacob for the tip !

12 thoughts on “How to disable the Umbraco V14 Getting Started Dashboard”

  1. Does this work on 14.2.0? Because I followed the steps but nothing happened. I tried placing App_Plugins on both wwwroot and root directory. But so far nothing. I tried using Composer but Dashboard / IDashboard namespace was not found .
    Thanks

    Like

    1. Hello Jasper,
      You will not be able to use C# with a composer to remove/change the collection of dashboards as you did previously.

      This will need to be done with the client side approach in this blog post.
      I have not tried this in 14.2 – but will shortly to see if this still works, if it doesn’t then I suspect the name/alias of the dashboard in the core CMS project.

      Like

    2. I can confirm this still works in 14.2 without any changes, create the following two files in these locations and you will be good to go Jasper.

      /App_Plugins/Tweaks/umbraco-package.json

      
      {
          "name": "Disable Getting Started Dashboard",
          "id": "disable.getting-started-dashboard.package",
          "allowTelemetry": false,
          "version": "1.0.0",
          "extensions": [
              {
                  "type": "entryPoint",
                  "alias": "disable.getting-started-dashboard.entrypoint",
                  "name": "Disable Getting Started Dashboard Entrypoint",
                  "js": "/App_Plugins/Tweaks/disable.getting-started-dashboard.js"
              }
          ]
      }
      

      /App_Plugins/Tweaks/disable.getting-started-dashboard.js

      
      export const onInit = (_host, extensionRegistry) => {
          console.log('Remove the welcome/marketing dashboard from Umbraco backoffice');
          extensionRegistry.exclude('Umb.Dashboard.UmbracoNews');
      };
      

      Like

  2. Hi Warren, thanks for the tip. Can I use this same code snippet in Umbraco 13.x LTS or do I have to go another direction? (Spoiler: I tried in 13.5.1 and it didn’t work.)

    Like

    1. Hiya Joey
      This will not work for Umbraco 13 as the backoffice is built with Angular and a different tech stack.

      Its documented here in the official docs (but they can be tricky to navigate)
      https://docs.umbraco.com/umbraco-cms/13.latest-lts/extending/dashboards#remove-an-umbraco-dashboard

      
      using Umbraco.Core;
      using Umbraco.Core.Composing;
      using Umbraco.Web;
      using Umbraco.Web.Dashboards;
      
      namespace My.Website
      {
          [RuntimeLevel(MinLevel = RuntimeLevel.Run)]
          public class RemoveDashboard : IUserComposer
          {
              public void Compose(Composition composition)
              {
                  composition.Dashboards().Remove();
              }
          }
      }
      

      Like

      1. these are the 2 scripts I’m using
        IE umbraco-package.json
        {
        “name”: “Disable Getting Started Dashboard”,
        “id”: “disable.getting-started-dashboard.package”,
        “allowTelemetry”: false,
        “version”: “1.0.0”,
        “extensions”: [
        {
        “type”: “entryPoint”,
        “alias”: “disable.getting-started-dashboard.entrypoint”,
        “name”: “Disable Getting Started Dashboard Entrypoint”,
        “js”: “/App_Plugins/Tweaks/disable.getting-started-dashboard.js”
        }
        ]
        }
        and disable.getting-started-dashboard
        IE
        export const onInit = (_host, extensionRegistry) => {
        console.log(‘Remove the welcome/marketing dashboard from Umbraco backoffice’);
        extensionRegistry.exclude(‘Umb.Dashboard.UmbracoNews’);
        };

        Like

      2. If you have the browser devtools open do you see the console.log message in the console?

        Remove the welcome/marketing dashboard from Umbraco backoffice

        Do you see any errors at all in the console, that may give us clues/pointers?

        Like

  3. Hi Warren,I have just tried this in a clean 15.1.1 install and it doesn’t see to work

    No errors in the console eitherHave HQ released an official way to replace the composer method?

    Like

    1. Hi Aaron
      Do you not see the console.log at all, I am wondering if its not getting registered. See if you can find the extension when going to Settings and the Extension part of the tree to find if it got registered/loaded.

      Not sure if anything has changed between versions, an alternative is to put App_Plugins inside the wwwroot and see if that works, as I wonder if you was perhaps getting 404s or similar in the network tab.

      Let me know how you get on.


      export const onInit = (_host, extensionRegistry) => {
      console.log('Remove the welcome/marketing dashboard from Umbraco backoffice');
      extensionRegistry.exclude('Umb.Dashboard.UmbracoNews');
      };

      Like

Leave a reply to Joey K Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.