Grunt workshop

@ryan-roemer