Your (Large) Project Probably Doesn’t Need Bootstrap (Or Foundation)

When I first encountered Bootstrap I was elated. As a web developer, I often work on small projects by myself or just with another developer. On these kind of projects like my personal blog I don’t have the money for a user interface/experience specialist or a designer. Bootstrap has the kind of things those people produce out of the box, styled to look way better than most developers can do. This is great for simple applications that are well, bootstrapped, like personal or open-source projects. Or if you are in a small environment where you can’t afford to consult a designer, like many non-profits.

As a professional I have the luck to work in environments where there is the money to have professional designers and user interface/interaction specialists, either as part of the project or full-time staff. So I’ve been mystified to see the adoption of Bootstrap and it’s cousin Zurb Foundation in a bizarre and haphazard way in several large and well-funded projects.

Of course there is a place for these frameworks in some large projects. When they are included carefully from the beginning to meet specific needs they can serve as a workflow for all professionals involved from the designers to the developers. But on some of the projects I’ve worked on, Bootstrap and Foundation were tacked on only in development after full designs and user experiences were already delivered. That meant they had to be overridden or parts of them carefully turned off.

In all cases, no one was able to tell me from the outset what parts were going to be used or not used. They just wanted to use them. Developers who insisted on them told me that they’d save time. Product owners usually wanted to adopt them because they had heard how so many sites these days are using them. There was often a lack of experience in building things which caused them to believe it was harder than it actually was. For example a grid system isn’t rocket science — there are plenty of them out there that you can include easily to fit specific needs, and building your own using SASS is now trivial.

Often when I questioned this I was told about the various big projects that use these frameworks or that it’s not that hard to turn parts of them off. But HOW they are used is more important than whether or not they were used. What parts meet business needs? What parts don’t? If this is defined then developers can start with more clear customized build of the frameworks at least. Otherwise, you have several tasks you need to manage that otherwise wouldn’t be part of the development process, including tuning and documenting what was used and what wasn’t. When it’s part of the workflow from the beginning on the project, those things are already clearly defined.

As a developer these frameworks tie me to a lot of excess class names. Since most of my professional work is with the Drupal 7 CMS, this causes several issues. One is that Drupal is already infamous for excessive classes, so I’m adding more on top of them. And there are a lot of ways to add classes in Drupal and many of them create long-term headaches such as adding classes into the site’s database via a complicated backend user interface like Panels.

When I’m able to use precise tools that fit business needs rather than trying to shoehorn a framework into them, I can code lighter and faster. For a Drupal layout with SASS and a grid system like Susy I can define a layout in a few lines of SASS, with one of these frameworks like Bootstrap I need to do additional work on the PHP template or database level. Both frameworks also have the potential to negatively affect page loading times.

And since the designs and the frameworks conflicted, when it came time for the designers to review the implementations, there were some issues. For example one of the great things about both Bootstrap and Foundation is they are mobile-first. The designs they were using in these projects weren’t.

Are you working by yourself or with limited resources? In that case Bootstrap or Foundation are a great choice. Or if you are starting a project and want to build your entire site around them to meet business needs. A good example was a government agency where they had some in-house developers, but no designers, and the developers wanted to be able to build out some future functionality on their own without having to pay for more designer time since their IT budget was small. However, I think well-documented designs are essentially frameworks of their own and can be used as such, especially when turned into a living style guide.

If you have designers and UI/UX people on staff. Or you paid for a complete delivery of the same things that Bootstrap and Foundation define, you’re just adding bloat to your project when you haphazardly shoehorn them in during development.