Grunt is a popular new task automation framework built upon the Node.js platform. It offers a wide range of features that allow you to streamline your project workflow and save time and energy by automating repetitive tasks, such as checking code quality, running tests, compiling templates and code, publishing to various types of services, and much more.
Task automation has been around since the beginning of software development and can probably be seen as a prominent reason for it being around at all. We're mostly writing programs to automate repetitive tasks after all.
Grunt itself is, for the most part, only a highly pluggable framework that provides a consistent interface for configuring automated tasks. The actual logic of the tasks is provided by a large variety of modules called plugins, which make use of this framework and usually tend to specialize in a certain set of functionalities.
At the time of writing the Grunt project is more than 3 years old, has over 3,000 plugins available in the npm public package registry, and provides tools and guides for creating or contributing to existing plugin projects.
A vast number of projects are currently making active use of Grunt in various ways, some of the most notable being the Yeoman, Modernizr, AngularJS, and JQuery projects.