Backbone.js Patterns and Best Practices Ebook Giveaway

Backbone.js Patterns and Best Practices GiveawayThe title and featured image may be a bit misleading. Yes, we're having a giveaway, but we're giving away so much more than just a copy of Backbone.js Patterns and Best Practices. I'm also giving away my personal computer, the rest of my physical book collection, all of my passwords for all of my online accounts, one of my paychecks each month for the rest of my life, aaaannnddd you'll take over as Google's CEO. Ok, that may be the most obvious April Fool's joke of the century, but it was pretty much obligatory.

NOTE: This Giveaway has ended. Sorry you missed it!

The introduction paragraph wasn't entirely false though. We are giving away "so much more" than just a copy of Backbone.js Patterns and Best Practices. In fact we're tripling that: we're giving away 3 copies of the ebook, 1 to each of 3 lucky winners. I guess we might as well start out with a quick look at the book.

Backbone.js Patterns and Best Practices

If you haven't my review of Backbone.js Patterns and Best Practices, you may want to check that out to get my opinion on the book. Also, if you don't win a copy of the book, you can always purchase it directly from Packt Publishing or from Amazon.


  • Develop custom plugins and mixins to reduce boilerplate in your code
  • Learn about Backbone.js view management with nested views, subviews, layout manager, and MarionetteJS views
  • Understand template management by storing and pre-compiling templates
  • Explore model validation with validation plugins and learn model serialization and relational data management with nested models
  • Work with collections to implement multiple sorting and filtering behavior
  • Create solid application architecture with AMD and different popular design patterns

How Do I Enter?

You have a few ways to enter:

  • Leave a comment below (make sure your comment profile has your actual email address) saying "I want it because..." and finish the sentence by stating what your most looking forward to reading about in the book.
  • Post a tweet on Twitter that says "I wanna win 'Backbone Patterns and Best Practices' from @joezimjs! #BBPBPGiveaway". Retweets from other people's entries count too.
  • Post a message on Google+ and/or Facebook that says "I wanna win 'Backbone Patterns and Best Practices' from!" Afterward leave a comment on this page with links to each post you put up. You may add these links to the end of the comment that you post for the first option to enter.

You may use any or all of methods of entry, and you gain one entry for each one you do. You may use each method of entry only once for a maximum of 4 total entries: 1 comment stating why you want the book, 1 Twitter post, 1 Google+ Post, and 1 Facebook post.


On May 1, 2014, I will randomly select 3 winning entries. I will contact each of the winners that day. If you win via your Twitter post, I will contact you via direct message on Twitter, otherwise, I will contact you through the email address that is used for your comment. Please use a real email address in your comments so that you can be contacted. If I don't receive a reply from a chosen winner within 30 days, the winner will become ineligible and I will randomly draw a new winner to replace that winner. The same 30 day cycle will apply for any new winners.


All entries must be in by April 30, 2014 at 11:59PM Central Standard Time. Any entries added after that do not count toward the giveaway.

That's All

Thanks everyone! Good luck! God bless and Happy Coding!

About the Author

Author: Joe Zim

Joe Zim

Joe Zimmerman has been doing web development ever since he found an HTML book on his dad's shelf when he was 12. Since then, JavaScript has grown in popularity and he has become passionate about it. He also loves to teach others though his blog and other popular blogs. When he's not writing code, he's spending time with his wife and children and leading them in God's Word.

  • luruke

    I want it because I code for food.
    And i need food.

    • Joe Zimmerman

      I was looking for a reason why you’d specifically want this book, but I’ll accept this :)

    • Joe Zimmerman

      You’ve won, luruke! Check your email so you can retrieve your prize!

      • luruke

        Wow :)

  • Jason Corbett

    I want it because I love books, patterns, best practices and backbone so this whole thing is just a huge win for me.

  • dmathisen

    I want it because I just started learning and building my first app with Backbone, so I need a good best practices resource before a screw everything up!

  • Bobby

    I want it because I’m developing an application using backbone and I have no idea what Im doing.

    • Joe Zimmerman

      Have you gone through basic tutorials first at least? This book isn’t for beginners. If you’re looking for a good beginning guide, I recommend my screencast series:

      • Bobby

        I’ve actually built a few things already in backbone, but I keep having the nagging suspicion that the code I’m writing isn’t the idiomatic way

        • Joe Zimmerman

          Interestingly, this book doesn’t do a lot of high-level teaching, so most of it is patterns that exist for each of the components of Backbone.

          Backbone is difficult to get right on its own, which is why things like MarionetteJS have come out. Chaplin is another good one, which actually used to be built on top of Marionette, though they’ve moved away from that. These two are more of frameworks and help structure code, though they’re still open enough for you to easily do it wrong :P

  • edfialk

    I want it because I’m tired of google searching backbone best practices.

  • bruceingalls

    I want it because I am comparing Backbone to AngularJS, and may transfer its practices.

  • MarcinKleczek

    I want it because… “I want it all… and I want it now!” ;-)

  • Patrick Smith

    I want it because… I’m want to learn the best practices for backbone and want to progress as a professional

  • Paolo Genta

    I want it because I know it’s a great title!

  • Enrique Monjas

    I want this book because I would like to learn good patterns and intermediate solutions for backbone and marionette

  • jean-cédric THÉROND

    Hey, I hope I’ll get one ! Moreover because I’m converting my compagny to a Backbone + Require.js stack client-side, and maybe in a near future to Node.js !

    • evindor

      You should check instead of Require.js, it’s great!

      • Joe Zimmerman

        I actually haven’t looked at Browserify, but I think I’ve settled on writing in ES6 and using Traceur to concatenate and compile down to ES5. It’s pretty sweet. Traceur allows you to use a lot of great ES6 features and I’m sick of waiting for ES6 to be reliable in browsers. I want it now, so Traceur allows me to use it.

        It’s import and export system is pretty sweet.

        • dmathisen

          There’s also JSTransform. Haven’t checked either out yet, but it seems pretty solid.

        • evindor

          I agree with you, it is sweet, i also was looking forward to try out this setup, but browserify + gulp is mature enough and i’ve been using them in production quality apps.

          • evindor

            You have to be brave enough to use Traceur for commercial development :)

      • jean-cédric THÉROND

        Yeah, looks good, plus node isn’t mandatory on the production env, if I get it right, since Browserify seems to concatenate bundles straight out of the command line (?). And maybe even a troyan horse for node developping ! :]

        • evindor

          Yep, you won’t need node in production, if you turn off node modules inclusion then you end up just with sweet node module system, later minifying it with uglify or something else and shipping to production.

          Gulp and gulp-browserify makes development even more satisfying with watching for your code and recompiling everything in milliseconds.

          • jean-cédric THÉROND

            What would be the killer features of Gulp against Grunt ?

            • bruceingalls

              My understanding is that Grunt will incorporate some of Gulp’s architecture, but is taking longer, for backwards compatibility

            • evindor

              I found it simpler to configure, run faster and it’s easier to write plugins for it as you get yourself comfortable with node streams.

              It’s great that with gulp you can do almost everything in memory, so there is no need to write on disk all the time.

              Gulp is just 4 methods – task, src, dest and watch (pretty self-explanatory, huh?)

              Hilarious slides on topic:

  • JG

    I need one ’cause Angular sucks.

  • Ruslan
    • Joe Zimmerman

      I don’t believe this book will help much with that. :)

  • Joanne D

    I want it because I’m learning Marionette and this will be a good foundation. I wanna learn how Backbone sync and router works.

    • Joe Zimmerman

      One of the best ways to figure out how something works is to check the source

      • Joanne D

        I tried to read the source code but I don’t understand it well since I’m a new coder.

        • Joe Zimmerman

          If you’re that new, I’d suggest learning more about programming JS in general before jumping into something like Backbone.

          Try Code Avengers, JS For Cats, or a book like Professional JavaScript for Web Developers.

          They tend to explain the language better so you can understand more easily what you are doing when you use libraries and frameworks.

  • Zlati

    I want it because I feel that I need to know it, since it’s one of the mature js frameworks.

  • Marcus Abrahamsson

    I want it because I’m currently learning marionette but feel that I have some gaps in the foundation, that will say Backbone

  • evindor

    I want it because i’ve been working with Backbone for 2 years already and i still like it. Angular really sucks and all my recent apps were built with relatively new stack Backbone + Rivets.js + Browserify + Gulp and i want to know if i could make this even better :)

    • jean-cédric THÉROND

      You’re a little harsh with Angular, you know, it’s like Symphony Vs Zend in the PHP world, a “do-that-magically-do-this” piece of code Vs. libraryish freely usable framework… I prefer Backbone by far, but won’t blame Angular, some people tend to prefer it because they don’t like to tinker by their needs, they are more “submissive” to their tools ;)

      • evindor

        Maybe i am, but this one is good about Angular :)

        Also my eyes are bleeding when i read angular code :)

        • Joe Zimmerman

          Yea I agree. I don’t really like how Angular works. I don’t mind things automagically doing things for me, but the way it’s set up doesn’t seem right to me.

  • Reinaldo Díaz

    I want it because it will help me develop better apps using best practices and patterns of Backbonejs, actually I develop using grunt tasks, coffeescript, and require, and i’m learning Marionette to use the patterns it offers. Learning this will help me be more competitive on my half time job and when I graduate from university, as I’m always looking to learn and be a better software developer.

    -G+ Post:
    -Fb Post:

    • Joe Zimmerman

      You’ve won, Reinaldo! Check your email so you can retrieve your prize!

      Thanks for signing up so much on both giveaways. I’m glad you got one at least! :)

      • Reinaldo Díaz

        Yeah, i’m interested in both of them. I think I’ll buy the Marionette one.
        Was really nice to receive the email :P
        Thanks for this giveaways Joe.

  • Alessandro

    I want one because i’m learning backbone and I’d like to do it in the right way!

    • Joe Zimmerman

      You’ve won, Alessandro! Check your email so you can retrieve your prize!

  • argonek

    I want one because i’m love JS :P

    • Joe Zimmerman

      You’re only 4 1/2 months late. :)