React is a rich ecosystem of libraries, which is both its strength and its trap. It is easy for a small project to end up with dozens of dependencies nobody on the team understands. The answer is not avoiding libraries, but choosing them carefully.
01Ask before you install
Every library that enters a project becomes part of it: it needs updates, security review, and onboarding for every new developer. Before installing, ask:
- Do I actually need it? Much of what we install can be written in ten lines, or is provided by the platform itself.
- Is it maintained? Look at the latest release and recent activity, and whether issues get closed or pile up.
- How big is it? A library that adds hundreds of kilobytes to do something simple affects your site's speed.
- Does it work for RTL? If your site is Arabic, check it handles direction and Arabic fonts without patching.
- How would I replace it? A library that is hard to swap ties you to it more than you think.
02Three areas worth a conscious decision
Forms and validation: if your forms are simple, the browser and a few lines are enough. Libraries pay off when steps and rules get complex.
Data fetching: the framework you use (such as Next.js) usually provides server-side fetching, so do not add a second layer unless there is a real need, like complex caching.
Ready-made components: UI libraries save time at the start, but customising them to a bespoke design can cost more than writing the core components yourself.
03The takeaway
Choosing libraries is an engineering decision, not a matter of taste. Keep dependencies few, write down why each one is there, and review the list from time to time. A project with a few well-understood libraries is easier to maintain and faster for the user.


