Why bootstrap sucks
Bootstrap is one of the most popular frameworks for fronted web development. It allows developers of all skill levels to build a webpage that looks at least adequate in only a small amount of time. However, as the title of this article suggests, I think Bootstrap really sucks and you shouldn't use it. Here's why:
- Bad code
Almost every project utilizing Bootstrap has a terrible front-end code base. Bootstrap relies on utterly complex and meaningless HTML structures for components, almost every template using them becomes bloated and messy. This makes projects hard to maintain and templates not very reusable.
- Buggy templates
Bootstrap presents itself as a framework that "makes front-end web development faster and easier". In practice, the opposite seems to be true.
Bootstap adds styling to almost everything, even if you didn't ask for it. And if you do need some markup, it seems to lack that 1 CSS rule so you need to add it on your own (congratulations, there are now 2 codebases for a single job).
- Terrible grid system
Of of Bootstraps key features is it's grid system. It's this specific system that dislike the most.
The Bootstrap grid system is used by adding classes to HTML containers indicating it's size. This can be done for multiple target devices resulting in a really messy and unreadable class attribute.
Markup should be defined in stylesheets and kept away from HTML. In Bootstrap projects markup related code is all over the place and changing a template is often very difficult, error prone and time consuming.
Backwards compatibility is not something that the Bootstrap developers seems to care about. This often result in compatibility issues between versions that prevent an easy upgrade.
Bootstrap is quite heavy and unless you use a custom build your project probably contains resources it doesn't need.
- "Bootstrappy design"
Once you install Bootstrap, default styling takes over. This styling isn't bad but it's quite difficult to customize in a nice way. This often leads to "a dime in a dozen design".
- You probably don't need it
Another reason why I don't like Bootstrap is the false assumption that it will speed up development or save time. This might be the case for prototypes or applications that don't need styling but for everything else you're probably better of without it.
"Fighting" against the default styling of Bootstrap can be very time consuming (not to speak of maintaining messy and unreadable Bootstrapped templates). This is something that is easily overlooked...
If you're building an app that doesn't need any design Bootstrap might be a nice framework. Also prototyping an interface might be a good use cases. If you however, need to build and maintain a front-end application that requires design. I would highly recommend not to use Bootstrap.