Chapter 5. Challenges for Large React Projects

React is a fantastic library with an incredibly helpful community, but it is not without flaws. In particular, a few things are worth keeping in mind when deciding what makes the most sense for your project.

Decision Fatigue

React: a JavaScript library for building user interfaces

React documentation

As powerful as React is, it solves only one specific problem. For a production-ready application, there are a vast number of additional tools, often called a stack, that you will need. For example, the React Starter Kit project, one of the more popular starter projects for React, creates new projects with 102 dependencies on external libraries (as of June 2018). To build a stack like this from scratch, a team has to make dozens of choices about what trade-offs are right for that project. Although the React ecosystem is stabilizing quickly, sometimes choices need to be made for even the most foundational parts of an application like data management, how to write a component, or testing. With such a sprawling ecosystem, upgrading, enabling features, setting patterns, and just keeping up can be exhausting and time-consuming.

Depending on your perspective, you may see this as a source of JavaScript fatigue or as a JavaScript renaissance. Many teams begin with one of a few dozen popular starter projects, often called boilerplates, and commit themselves to the ongoing maintenance. Others rely on the ecosystem of frameworks like Next.js, ...

Get What React Is and Why It Matters now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.