Angular, React, Vue.js, Svelte… Next.js, Nuxt.js, Astro… Redux, Recoil, Zustand, MobX… the front-end JavaScript ecosystem is riddled with frameworks and libraries. And every time you have to create a new project, you have to decide which ones to use. A daunting task, but why?

The main problem is that it’s hard to build and maintain complex front-end applications with vanilla JavaScript only. That kind of apps has a lot of moving parts, and you, as the developer, have to take care of all those parts. Here’s where the difficulty lies.

Front-end libraries and frameworks were created to make building front-end apps easier. These take care of many of those moving parts, so that you have less on your plate. The thing is, these frameworks often have problems of their own.

And that’s why new frameworks emerge, they try to solve the problems created by older frameworks. In general, newer libraries and frameworks are technically better than older ones.

On the other hand, older frameworks/libraries have better ecosystems (i.e. more libraries and plugins), bigger communities and more documentation.

It’s a good idea to try new frameworks, but if you’re creating a professional project, I recommend to rely on the most known ones, like React or Vue.js.