As developers, we often find ourselves looking for ways to be more efficient. For many of us, this means turning to front-end frameworks. Whether it is robust, full-featured frameworks like Bootstrap or Foundation or more foundational frameworks such as Skeleton or Pure, developers are turning to these tools to get a jumpstart on web projects.

Benefits of Using a Front-end Framework

First, let’s take a look at a few benefits of using a front-end framework.

Easy and quick to get started

  • They’re great for prototyping
  • You can gain momentum by “getting something on the page”
  • They’re handy when you’re against tight deadlines
  • They provide a solid foundation for responsive design
  • Components of the UI have a base style to be extended (forms, buttons, menus, etc.)
  • The base styles persist throughout
  • They provide a consistent UI design for developers who lack design skills, which is great for things like intranet sites or documentation
  • They provide a base development for non-developers to get something up quick for prototyping or mockups

Good looking UI, even out-of-the-box

  • Components of the UI have a base style to be extended (forms, buttons, menus, etc.)
  • The base styles persist throughout
  • They provide a consistent UI design for developers who lack design skills, which is great for things like intranet sites or documentation
  • They provide a base development for non-developers to get something up quick for prototyping or mockups

Code is reliable and tested

  • Code is widely used, especially open source
  • Cross-browser compatibility is built-in, so you know where it will work

Help is readily available

  • Front-end frameworks are widely used, so answers to common problems are easy to find
  • The documentation is usually thorough
  • Free and professional themes and templates may be available

Disadvantages of Using a Front-end Framework

While development frameworks have been gaining in popularity over the past few years, not all frameworks are created equal and often a front-end framework is not the right tool for the job. Here are a few disadvantages I’ve found to using them:

They can be too opinionated

Although they’re easy to get started, they can require more time down the road to add features and customizations. You might find yourself fighting the base styles with overrides (wasting all that precious time you saved) to get the desired results. This can also lead you to write code that doesn’t evolve gracefully as the project needs change.

Note: Some of these risks can be mitigated by selecting a framework which is more flexible or closely resembles your project. I would advise testing out different frameworks, so you have a better understanding of the advantages and limitations of these tools when a new project comes along.

You’re not learning how to code

It is easy to fall into the trap of only learning the framework and not learning how to develop. You often miss out on valuable experience with the underlying technology. If you’re not already an expert, it is important to understand the code which powers the framework. This knowledge will make life a lot easier when you run into complex challenges and will make you a better developer overall.

Updates can introduce issues

  • Updating may introduce conflicts with your code
  • When it comes to updates,at the mercy of the framework developers. Sure, you can choose not to update, but you then risk falling behind.

Technical debt

  • Developers coming onto the project will need to understand the framework in order to contribute
  • “One-size-fits-all” frameworks tend to have a larger footprint and can add unnecessary bloat to your project

So What’s the Verdict?

As with most development decisions, the choice to use a framework and which framework to use should be made based on the requirements of a specific project. What may be perfect for a small marketing website, may not be so great for building a highly-customized web portal. With new frameworks popping up frequently, but as developers, it’s still important to be diligent in selecting frameworks that suit our needs and the needs of our clients.

Let's talk

"*" indicates required fields

This field is for validation purposes and should be left unchanged.