When you want to build a new app, you have 2 choices.
The first is to build it with the tech you already know. If you know React, stick to using React.
Another option is to pick an entirely new stack. If you know React, you might choose to use Svelte, or Vue.js. If you know Swift you might want to use React Native instead.
This is a difficult problem because as a developer I think we should balance knowing something inside-out becoming a total expert of that, and knowing a little bit of everything.
If you create all your apps with React, you’ll never know what you’re missing with Vue.js. And the opposite is true, too.
When there’s an “online war” on Twitter or Reddit about Vue vs React (or anything else) most of the times the supporters of one side don’t really know the other side too well, but are only talking about it in terms of what they heard other people say.
But, there’s also very little time in the day to be able to explore all the options before choosing a tech stack.
Usually I’ll probably stick to the stack I know best which currently happens to be React and Next.js, unless I know, or think, that something else is the optimal choice. In 3 years I might have a totally different default choice. I’m not really attached to tools, I am not a React developer. I’m a person that happens to be a software engineer that happens to use React often times.
A long time ago I was very deep into a tech stack and a new project popped up where Node.js was, perhaps, a better choice. We as a team decided to go all in with Node.js, and I think it was a good choice although we got into lots of unknowns.
Any time you switch to something new, you know what you’re leaving behind but you don’t know what you’re really getting into.
But that’s how you build expertise. The next project you’ll know if that was a good choice or not. Only time will tell.