srb

Collect and analyse performance and popularity data about your websites.

Collect and analyse performance and popularity data about your websites.

[ THIS IS EXPERIMENTAL AND NOWHERE NEAR FINISHED - USE AT YOUR OWN RISK ]

Make sure node and npm are installed and in your PATH. Then install phantomjs globally.

$ npm install -g phantomjs
$ npm install srb --save
var srb = require('srb');
var opt = { baseurl: 'http://yoursite.com' };
 
srb(opt)
  .on('error', function (err) {
    console.error(err);
  })
  .on('task:start', function (name) {
    console.log('Task ' + name + ' started!');
    console.log(this.completed + ' completed out of ' + this.total);
  })
  .on('task:complete', function (nameresult) {
    console.log('Task ' + name + ' completed!');
    console.log(this.completed + ' completed out of ' + this.total);
    // console.log(result); 
  })
  .on('complete', function (results) {
    console.log('complete!');
  });

The only argument to srb() is an object with options:

var options = {
  // The base URL to scan. 
  baseurl: 'http://yoursite.com/',
  // Options specific to the `pages` task. 
  pages: {
    max: 5,
    exclude: [ 'login', /^blog/ ],
    include: []
  },
  // Options specific to the `thumb` task. 
  thumb: {
    width: 100,
    height: 100
  },
  // Options specific to the `screen` task. 
  screen: {
    sizes: [ '320x480', '800x600' ]
  },
  // Options specific to the `identity` task. 
  identity: {
    twitter: "YOUR SITE'S OFFICIAL TWITTER USERNAME",
    facebook: "YOUR SITE'S OFFICIAL FACEBOOK PAGE ID",
    google: "YOUR SITE'S OFFICIAL GOOGLE+ PAGE ID"
  },
  // Options specific to the `insights` task. 
  insights: {
    // The PageSpeed rules to run. If unspecified, all rules for the current 
    // strategy are used. 
    rules: [
      'AvoidLandingPageRedirects',
      'EnableGzipCompression',
      'LeverageBrowserCaching',
      'MainResourceServerResponseTime',
      'MinifyCss',
      'MinifyHTML',
      'MinifyJavaScript',
      'MinimizeRenderBlockingResources',
      'OptimizeImages',
      'PrioritizeVisibleContent'
    ],
    // Valid values are desktop and mobile. 
    strategy: 'desktop',
    // Supported locales here: 
    // https://developers.google.com/speed/docs/insights/languages 
    locale: 'en_US'
  },
  // Some tasks require credentials to access 3rd party APIs. All of these 
  // credentials are optional. If omitted, some tasks will return partial or 
  // empty results. 
  credentials: {
    // You need to create an application on https://dev.twitter.com/ and create 
    // an access token. 
    twitter: {
      consumerKey: 'YOUR-CONSUMER-KEY',
      consumerSecret: 'YOUR-CONSUMER-SECRET',
      accessToken: 'YOUR-ACCESS-TOKEN',
      accessTokenSecret: 'YOUR-ACCESS-TOKEN-SECRET'
    },
    // See: https://cloud.google.com/ 
    google: {
      // After you create your app on Google's Cloud Console the API KEY can be 
      //found under the "Server Key" options. 
      key: 'YOUR-API-KEY'
    },
    // See: http://aws.amazon.com/awis/ 
    aws: {
      key: 'YOUR-AWS-KEY',
      secret: 'YOUR-AWS-SECRET'
    }
  }
};

More info about the tasks srb performs here.

The MIT License