OK, let's say you choose React. Now, how will you do the state management? Redux, maybe MobX? Or maybe I rely just on React Hooks and the Context API?
In this four-article series, I'll give you my tips and tactics so you can choose the best libraries for your JS project.
In smaller projects, you should prefer tiny libraries (or even Vanilla JS) with little boilerplate code. On the other hand, larger, more complex libraries are better suited for larger projects that might be worked on by many people.
One of the advantages of (some) complex libraries is that make the code easier to maintain (if you use them properly, of course.) at the cost of more boilerplate code, increased build times, and larger bundle sizes.
However, small codebases are easier to maintain. That means, if you add complex tools you'll get the disadvantages, but not the benefits (because you already had the benefit of maintainability.)
It doesn't necessarily mean that you should use only larger frameworks and libraries on big projects. Size still matters and if you find a smaller library that does the same thing and does it well, it can be a good option, as long as they meet the other requirements in this series.
In the next article of this series, I'll talk about comparing new and shiny libraries vs. popular and "safer" ones, and when to choose one over the other.