code: function () {
      var welcome = Help.introJs();
      welcome.setOption('tooltipClass', 'welcome-dialog');
      welcome.setOptions({
        'showStepNumbers': false,
        'showBullets': false,
        'showProgress': false,
        'skipLabel': 'Exit',
        'doneLabel': 'Start demo',
        'tooltipPosition': 'auto',
        steps: [
          {
            intro: templates.help.welcome()
          },
          {
            intro: templates.help.menuButtons()
          },
          {
            intro: 'You can click the button below to start a demo session. The demo session has Kaggle <b>Titanic Survival</b> dataset. <br>You can also start this session later using the button at the bottom of this page. <br><br> Happy SPOTTING!<br>'
          }
        ]
      });
  
      welcome.onchange(function (targetElement) {
        if (this._currentStep === this._introItems.length - 1) {
          $('.introjs-skipbutton').css('color', 'green');
        }
      });
  
      welcome.oncomplete(function () {
        window.localStorage.setItem('spotWelcome', 'done');
        app.message({
          text: 'Starting the demo session.',
          type: 'ok'
        });
        app.downloadRemoteSession('https://raw.githubusercontent.com/NLeSC/spot/master/dist/demo.json');
      });
  
      // add a flag when we exit
      welcome.onexit(function () {
        window.localStorage.setItem('spotWelcome', 'done');
      });
  
      var spotWelcome = window.localStorage.getItem('spotWelcome') === 'done';
      if (spotWelcome) {
        // console.log('No need to show welcome dialog again.');
      } else {
        console.log('Starting the welcome dialog.');
        welcome.start();
      }
    }
docs: [description]