Front-end web development is evolving. Long gone are the days of writing static HTML files with self-contained CSS. As web developers in this modern world, we need to understand and utilize an endless number of frameworks, plugins, techniques and more. Knowing the right tools to use and when to use them is key to building successful solutions.

This book came to be from the lessons we, the authors, have learnt through trial and error whilst working on front-end development projects ranging from enormous high-traffic sites such as MSNBC, The GRAMMYs and BravoTV to startups and experiments such as Drupalize.Me and BracketCloud We want to share with you the tools that we use and the standards that we follow. Our ultimate goal is for you to walk away understanding the core concepts of front-end development so you can confidently go and work on your own projects.

This book is somewhat opinionated based on our experience, so you'll find some of the content heavily geared towards a particular way of doing things. Of course, there are many ways of accomplishing the same task in the world of front-end development; that's what makes it so accessible and yet so complicated. Learning one way of doing something can make learning the alternatives a much more palatable task, so we encourage you to look into any and all of the technologies presented herein and even go on to see if something else might better fit your needs.

Who is this book for?

The content in this book is aimed at those who are new to front-end web development. Regardless of whether you are a beginner or expert developer, the concepts outlined in this book are essential to embracing the rapidly evolving web.

If you hear yourself asking any of the following questions, this book will likely be very useful for you!

"What actually is front-end development?"

"How can I be a more efficient web developer?"

"What is Grunt/AngularJS/SASS/\<_insert popular tool name here_>?"

"How do I fit all of these front-end tools together into a project?"

"How can I build a front-end application that can scale?"

What does this book cover?

Basics

You'll learn what's expected from a front-end developer and get a short overview of the types of projects a front-end developer might be tasked with. We'll even take you through setting up your computer for local development.

Frameworks

We'll introduce some of the more popular JavaScript frameworks and template languages in use today. We'll cover the details of what exactly a 'framework' is and talk about the MVC pattern before getting into the details of installation and practical usage of 3 popular frameworks: AngularJS, Backbone.js and Ember.js.

Styling

There's a lot more to styling than just throwing CSS at your markup; that just leads to a big mess of unreadable spaghetti code sprinkled with `!important` parmesan. We'll cover CSS preprocessors like Sass, organizational methods for your styles, and the kind of impact your CSS may have on a project's performance.

Dependency Management

Getting your whole team on the same page code-wise can be challenging. Heck, even making sure you're using the same version of that awesome Ruby gem after an update can be a pain. This chapter on dependency management covers a number of really handy front-end package managers like `npm`, `Bower`, and `Bundler`. You'll learn what a package manager is and how to use it effectively to keep your project on track.

Automation

We'll go over how you can remove the tedium from front-end development and just get to work. You'll learn how to perform tasks like checking your JavaScript or CSS for errors whenever you save a file, minify your code to shave off some file size, and even how to automatically refresh your browser whenever something changes. Once you get started, you'll never look back.