Fire Your Designer and Choose One: Bootstrap or Foundation (…unless you really are that good, and that isn’t likely)

Every time someone brings up Twitter’s Bootstrap or the Foundation library by Zurb there is always bound to be a food fight over how using CSS and Javascript libraries “dilute a web site’s brand”.   I’m writing this post because I’d like to encourage an even larger, more vicious food fight.  Not only do I think that you should use Bootstrap or Foundation, I think you should fire your designer.  You don’t need them anymore (unless they also know how to program, which they probably don’t).

Designers tend to hate Bootstrap…

…and I understand this.   I understand this because graphic designers are Artists who believe that a site’s “design” emerges from the organic values it represents coupled with the refined sensibility that only they have achieved through years of experience and education.  Do the core values of your brand suggest the rounded corners and subtleties of Bauhaus or Art Deco?   Or does the internal tension of your product’s subtext call for buttons that resemble primitivist surreality?   Your web site is more than just a static entity it needs to be a “bold statement.”

Right?  Because web site design is Great Art.

…and then I just install Bootstrap and the designer flips out.

Using Bootstrap is like “serving McDonald’s at a fine restaurant” – people don’t love a brand because it looks like all other brands, they love a brand because it provides a unique experience and style.   The look and feel of every element is as important as the functionality of a site.  Or that’s what the response is.    The designer then proceeds to tell the client that “Bootstrap dilutes the brand… the most valuable asset you have…”

…and while I understand this, I also believe that this response is complete bull$#%# (unless you are really, really good, and most designers aren’t).   To me this boils down to risk, money, and time.

  • Unless you have Rune Madsen or Edward Tufte on your team, there’s a risk that you are going to end up with awful custom CSS.    (If you are this good, then go for it, this post doesn’t apply to you.)
  • It’ll cost you an arm and a leg to reinvent the wheel, you will literally be paying for someone to reinvent the button.
  • Instead of focusing on requirements and functionality, you will be wasting your time on visual minutiae.

“Use Bootstrap or Foundation: I Don’t Care Which One”

Let’s take Bootstrap as an example.   I view Bootstrap the same way a Java programmer would view the java.util package or a Ruby programmer would view the Array class.   It is a guaranteed baseline of functionality – I know what is in there, I can easily make use of a standard interface, and, if a designer really needs to, they could go and customize it however they wish.  If a Java programmer on my project came to me and told me they were going to reimplement the HashMap class because they had a better idea, I’d quickly look for a replacement.  No, full stop.  Don’t reinvent the wheel.

If a project needs a web site, I gather requirements and start to implement a prototype using some standard libraries:  Bootstrap or Foundation, jQuery… the usual suspects.  I will select these libraries because they support a set of standard requirements I know I’m going to have to satisfy,…

…but I’m not asking permission to use these features.  

I’m not going to stop and engage in a dialog with a designer about whether the site should use a navbar or pagination… I’m not going to stop and consult “the designer” and ask them how the form should work or whether the site is going to use color coded labels to convey importance (I may ask them what color the labels should be… maybe).

The “Web” is beyond this stage.   It used to be “Art”, but in 2012 we’ve all agreed on a basic set of visual cues… haven’t we?   Every site worth using has converged on a set of standards, just like every iOS application or Android application provides a set of common design elements.

“Don’t tell me that, in addition to creating a web site to deliver online training for Chiropractors that we’re also going to take a few weeks to reimplement standard libraries for multi-select buttons.”

Is that what the Designer Wanted?

Then it happens.  Then the designer somehow convinces the client that, like Apple, they need to give the designer total control over the look and feel of the web site.   Because, you know, Jony Ive is the real reason behind the success of Apple’s products.  They appeal to the CEOs yearning to be Steve Jobs and tell them that Jobs made a bold bet on designers that ultimately paid off in spades.

You’ll be moving along at a fast pace when your client will interject: “that menu looks nice, but have you asked the designer what they think yet… you should really let them own the look and feel of those buttons”.    That’s when you try to explain that these are standards…

You, “These are the same buttons that Twitter uses, that Square uses.”

Designer, “That’s the problem, we’re diluting our brand.”

You, “Bullshit.   You can add a customization layer atop Bootstrap.”

Designer, “That’s not the point.  The point is that the overall look and feel of the site will look like Twitter.”

You, “Have you used WordPress or Google or Chase… you know all these sites have navigation elements and dropdown menus that look strikingly similar.  Are you saying you don’t want…”

Designer, “None of those sites use Bootstrap, they have a custom…”

You, “You can add a layer of CSS to customize Bootstrap, don’t you…”

Designer, “We’re already developed these components in house.”

You, “Your argument for not using Bootstrap is that you’ve already implemented it internally.”

And, the client often buys this line of argument less based on the merits of the argument, and more because the “business stakeholder” feels less threatened by artistry than he is by technology.

What you do as a developer is a mystery, but what the designer does is very accessible.

The Disconnect: Web Design is No Longer “Art”

This is often what it all boils down to – a disconnect.  Designers see frameworks like Bootstrap and Foundation as encroaching on their turf.    I compare it to a Java programmer who avoids ever using Maven or Gradle because they really want to “own the build” and “understand the build from the ground up”.    Except it is a bit worse for graphic designers.

Most developers (or more accurately, most good developers) would agree that reuse is generally a good thing.  If we all ran around reinventing things like LinkedList classes or Dictionary objects we’d get nothing done.    Not only would we get nothing done, but nothing would be portable.  Artists and designers, on the other hand, they often believe that writing CSS and HTML from scratch is just another part of the creative process – this starts to get really fun when designers start to view Javascript as their responsibility.

When it gets to this point, I usually just stop and give the client some simple advice: “Fire the Designer and Choose One: Bootstrap or Foundation”