What's Actually Happening With JS Frameworks
The results of the State of JavaScript survey are in, and they mark the perfect time to have an honest discussion about the current state of the frontend ecosystem. With all the recent advancements in frameworks and development tools, I believe we’ve reached an inflection point—a moment where we, as web developers, need to rethink our approach and mindset as we move forward.
For some context, I’m a full-stack developer with over 15 years of experience. During this time, I’ve had the opportunity to work with nearly all popular frontend frameworks and libraries out there.
We’ll start with a quick overview of the survey results and then move on to a fair assessment of the major frameworks. I emphasize ‘fair’ because, let’s face it, people often build echo chambers around their favorite technologies, focusing on their strengths while highlighting the shortcomings of the competition. However, you’ll see that this is not a healthy approach in 2025 since frameworks are more similar than ever, and AI advancements will fundamentally change the way we build products.
The State of JavaScript results are filled with useful insights ranging from the adoption of JS features to backend frameworks or serverless runtimes. What I find really interesting, though, are the usage, interest, and retention charts for the popular frontend frameworks. The results of 2024 confirm some of the things we already knew while also hinting at some interesting changes to come.
First of all, React remains by far the most used frontend framework, followed by Vue and Angular. It is exciting to see that Angular is gaining traction again, proving that all the work they did in the past years to simplify and modernize the framework is finally paying off. Svelte is slowly gaining momentum in fourth place, while Preact, a simplified version of React, is in fifth place.
The usage chart is heavily influenced by concrete things like job opportunities or the existing adoption rate of a framework. The interest chart, however, is a better indicator of where the ecosystem is heading. Here, we have Svelte and Solid leading the pack, with Vue in third place. Angular and React rank lower, which is expected from mature, widespread technologies.
In my opinion, the retention results reveal the actual future value of a framework, since they measure a developer’s satisfaction with tools they have already worked with. Solid, Svelte, and Vue lead the way here as well, reaffirming the interest we all have in working with simple tools that emphasize developer experience.
This discussion can be extrapolated to meta-frameworks, where the results are similar to those of the associated frameworks. Astro deserves an honorable mention here since it leads the charts in interest and retention and is the only technology that looks like it might have a chance to dethrone Next.js at some point.
Now that we’ve established the current context, let’s dive into the major frameworks and take a closer look at some of their drawbacks. We all know the internet is filled with videos and articles outlining the selling points of every framework. But, in order to stay relevant in this modern web dev space, you need the full picture. And you can only get the full picture by objectively reviewing a framework’s drawbacks, not only its strengths.
React
Since React is the most widely used framework by a significant margin, it’s only fair we start here. React has three main issues you should be aware of. Well, I’m sure it has more issues than that, so feel free to share your opinions about React or any of the other frameworks in the comments.
React is not truly reactive. Despite the name, React relies on a virtual DOM and dirty checking to determine which parts of the UI need updating. In recent years, this has become an overhead since it is not as efficient as true reactivity found in frameworks like Solid. While this is primarily an internal framework issue and rarely impacts app performance directly, it does leak into the developer experience through constraints like special hooks and dependency arrays. React 19 introduces a compiler aimed at alleviating some of these issues, but it does so by obscuring the complexity rather than addressing the root cause of the problem.
The increasing interdependence between React and Next.js. On the surface, this close collaboration seems beneficial, as it provides more resources and momentum to drive the framework forward. However, it also raises concerns about potential vendor lock-in. Features and optimizations introduced in React often feel tailored specifically for Next.js, which could inadvertently limit innovation and flexibility in other parts of the React ecosystem.
React Server Components introduce unnecessary complexity. While the intention behind RSC is to improve performance by enabling server-side rendering for individual components, the implementation often complicates the mental model of how React applications work.
Angular
Things here look much better than they did a couple of years ago. The Angular team recognized that one of its biggest issues was unnecessary complexity, and they’ve made significant strides in addressing this. By simplifying APIs, improving the developer experience, and modernizing their approach, Angular has managed to shed much of its historical baggage.
That said, Angular still has a few drawbacks worth mentioning:
Its opinionated nature, while helpful in some contexts, can feel restrictive for developers who prefer flexibility.
Despite ongoing optimization efforts, Angular remains heavier compared to some modern alternatives.
The learning curve remains steep, especially for newcomers unfamiliar with TypeScript and RxJS.
Vue
Vue is in an interesting situation. It is the only big established framework not developed by a tech giant. However, this can be a drawback when competing with React and Angular for big projects, as Vue lacks the backing and resources of large companies. Additionally, Vue 2 and Vue 3 still coexist, leading to fragmentation within the ecosystem. Developers often face compatibility issues or difficult decisions regarding which version to adopt.
Svelte
Svelte is another fan favorite, enjoying increasing interest, but it has a few important drawbacks:
Its adoption lags behind more established frameworks, creating a catch-22 situation where companies hesitate to adopt it due to its smaller ecosystem and limited job market.
The recent overhaul in Svelte 5 introduced breaking changes, causing friction for existing projects.
Solid
Solid checks many boxes for modern frameworks but faces adoption hurdles. While its ecosystem is growing, it is still smaller than those of established frameworks. Like Svelte, Solid has yet to establish a strong presence in the job market, making it a riskier choice for large teams and enterprise software.
Honorable Mentions
Qwik and HTMX deserve mention for their innovations in web development. However, as with any emerging technology, their adoption comes with risks, such as smaller communities, limited support, and potential scalability challenges for large applications.
So, what’s the point of looking at the drawbacks of each framework? It all boils down to understanding that in the current dev space, there is a lot of value in having experience with multiple frameworks and being open to working with any of them. There is no perfect framework, and no magic bullet when building web apps. The reality is that all these tools are more similar than ever, and frameworks like Svelte and Angular changing their architecture to adopt the latest trends is all the proof you need.
At this point, the key differences are slight variations in developer experience and the type of product being built. AI code generation, while still flawed, will change the way we work and force us to become more productive. Your competitive advantage will be to use AI efficiently, become fluent in multiple frameworks, and be able to adapt to any type of codebase.
If you want to deep dive into web development, check out the Frontend Dev Career Path on Scrimba and get 20% off pro plans by clicking this link. You might also like some of my other videos.
Until next time, thank you for reading.