Natasha Kapur on Unsplash

Caution!

This is an old post. Information here may be out-dated, or the post may re­flect opin­ions or be­liefs I no longer share.

From look­ing at Grunt’s pages-long con­fig­u­ra­tion (shud­der) to writ­ing a Gulp build­file (ex­as­per­ated sigh), Brunch felt like a much needed breath of fresh air.

Here are some things I love about this less talked about build tool.

Easy To Grasp

It takes ap­prox­i­mately 15 min­utes to get started with Brunch and dig straight into your pro­ject. Wait - was­n’t that a sell­ing point for React not so long ago? Let us cer­tainly sell a build-tool, then.

Just Works

Plugins

npm install --save-dev uglifyjs-brunch cleancss-brunch html-pages-brunch imageoptmizer-brunch
npm run build

That is all it takes to minify and op­ti­mize all your source as­sets and get them ready for pro­duc­tion. Of course, this is de­pen­dent on the plu­gin au­thor hav­ing put in the ef­fort to have that work out for you - I hope the com­mu­nity does not de­tract from this ideal! That said, some plu­g­ins may not work with zero con­fig. I haven’t found any.

Live Reload

A ma­jor headache in Gulp was get­ting a quick and easy live-re­load setup go­ing. Brunch does that for you out of the box!

Config Reload

If you have the server run­ning, adding in an npm pack­age does­n’t re­quire you to restart it - Brunch is smart enough to pick up the changes and re­load on its own.

Skeletons

Lots of skele­tons to help you get started even faster! Or just use plu­g­ins to cook your own meal.

Sassy Documentation

If your tagline is Seeing your build tool in night­mares? Try Brunch!, you’ve sold your prod­uct halfway within the first 5 sec­onds of your of­fi­cial pitch. The get­ting started guide is no less, mind you!

Deploying is Adventurous

Are you fa­mil­iar with rsync? That’s all I needed to know to de­ploy it to my VPS over SSH! Personally, I don’t mind this bit of con­fig­u­ra­tion at all - it’s quite fun to do af­ter hav­ing to do noth­ing any­where else.

Here’s a snap­shot from my package.json:

{
"scripts": {
"deploy": "rsync -avH public/* -e ssh user@host.com:/path/to/www"
}
}

Convinced? Head over to brunch.io and give it a try.

At the end of the day, re­mem­ber to use the right tools for the job! Brunch may solve some of your headaches, per­haps not all.