Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

JavaScript Application Design Build Status

A Build First Approach


Accompanying code samples and snippets for the JavaScript Application Design: A Build First Approach book.

These are the accompanying code samples and snippets for a book I wrote about JavaScript build processes and application architecture. The samples are organized by chapter, and they appear in the same order as they do in the book, for convenience.

Fell out of the skies and would like to learn more about the book?

You could visit its landing page to learn all about it!

Book buying frenzy? Say no more, stranger!

Installation Pre-Requisites

You'll need Node.js. You can get the latest version from their website, although I'd suggest using nvm, which makes it super easy to install multiple versions, and switch between them.

You'll need GraphicsMagick, and also phantomjs, to run some of the examples. PhantomJS comes in a module that you can conveniently install as a global.

npm install -g phantomjs

GraphicsMagick comes in different distributions for OSX, Linux, and Windows, so please refer to their site to download the appropriate distribution. If you're on Ubuntu, I'd recommend installing it through apt-get. If you're on OSX, you can use brew to install it. These kinds of tooling download automation present the most benefits when you automate all of your development environment provisioning, enhancing consistency across fresh installs in your systems. As an example, you can take a look at my dotfiles project, for reference.


Once you have Node and the other tools you'll need, use the command below to clone this repository and install all of the dependencies:

curl | sh

If you're on Windows use, instead.

That's it! You are now free to roam the sample directories and follow the instructions in each of them!

Manual installation instructions can be found here, but you shouldn't need any of that.


To run an example, read its and follow the instructions I've placed there. I tried to make them as straightforward as possible, but sometimes they might not match the examples in the book to the letter.

There are some examples here that you won't find on the book, those will generally be a bit longer: exactly the reason why I didn't include them in the book. Although the code itself might not be present in the book, most of the explaining will definitely be there, rather than here.

Table of Contents

Here is a complete list of the code samples found in this repository.

Release History

This is the list of releases to date. You can feel free to simply clone master, to get the most up-to-date version.

You can find the repository up on GitHub, which contains the latest updates to the samples, and interactively renders the Markdown code in this text, displaying images, making code prettier, styling the text, and letting you follow links.


If you run into any problems, please create an issue here. Maybe it's something that needs fixing. If you feel like contributing, that's awesome! Just fork this repo and create a pull request with your fixes or improvements.


Feedback about the book itself should be posted on the Manning Online Author Forum. You can drop me a line at if you want to leave me a more personal note, just say hi, or grunt at me about my failure to amuse you. I'd love to hear from you!

You can also find me blogging at Pony Foo. My Twitter account is @nzgb, and I enjoy people stalking me over the Internet!

Let the #buildfirst revolution commence!