docs: function(app) {
  
      // Communication is the key to every succesful relationship
      app.status('Waiting for site to be ready.');
  
      // Grab the URL we want to check
      var site = app.url;
  
      // Ping the site until its ready to go
      return Promise.retry(function() {
  
        // Log the attempt
        log.debug(format('Checking to see if %s is ready.', site));
  
        // Send REST request.
        return new Promise(function(fulfill, reject) {
  
          // Make the actual request, lets make sure self-signed certs are OK
          rest.get(site, {rejectUnauthorized: false})
  
          // Log result and fulfil promise
          .on('success', function(data) {
            log.debug(format('%s is now ready.', site));
            fulfill(data);
          })
  
          // Throw an error on fail/error
          .on('fail', function(data, response) {
  
            // Get the codes and define codes that should indicate the site
            // is not ready yet
            var code = response.statusCode;
            var waitCodes = [400, 502];
  
            if (_.includes(waitCodes, code)) {
              log.debug(format('%s not yet ready with code %s.', site, code));
              reject(new Error(response));
            }
            else {
              log.debug(format('%s is now ready.', site));
              fulfill(data);
            }
  
          }).on('error', reject);
  
        });
  
      }, {max: 15})
  
      // We've been unable to get the correct status code so lets shoot out a
      // non-fatal warning to the user
      .catch(function() {
        log.warn(
          format('Unexpected status code returned. This MAY be a problem. ' +
          'Check your site at %s to verify. Restarting your app may help.', site)
        );
      });
    }