Welcome to the 8th edition of the JavaScript Rising Stars, the place to see the trends about the JS ecosystem in 2023.
Let's see how a set of UI components you copy-paste took the world by storm!
Welcome to the 8th edition of the JavaScript Rising Stars, the place to see the trends about the JS ecosystem in 2023.
Let's see how a set of UI components you copy-paste took the world by storm!
In 2023, React maintains its position as a frontrunner in the JavaScript ecosystem, a trend persisting from 2021 and 2022, despite occasional criticism and controversies.
Celebrating its 10th anniversary, React earned a documentary (watch it here); it says a lot about its popularity!
However, React is not without its skeptics. Some view it as a relic of the past, a sentiment expertly explored in this article, which also delves into alternative solutions. On the flip side, proponents laud React for its remarkable adaptability and capacity for reinvention.
One point of contention revolves around the absence of "signals", a reactivity handling mechanism employed by libraries such as Solid or Preact, while React enthusiasts appreciate the predictability offered by React's data flow.
From a tweet by Devon Govett, the creator of Parcel, about signals:
The simplicity of UI as a function of state is lost when updates flow unpredictably.
To know more about signals, read The Evolution of Signals, a comprehensive exploration of one of the year's buzzwords.
At two htmx is a library that takes a different approach to provide interactivity to HTML page: rather than writing several lines of JavaScript code, developers enhance HTML with specific attributes to enable real-time interactivity and dynamic updates.
It was lauded for its small file size and seamless integration with existing server-side frameworks, as it's part of the trend "send HTML over the wire": ask the server to send partial blocks of HTML instead of handling JSON in the client.
In the same space of "tagging libraries", Alpine.js is a popular solution (number 13 this year).
At three, Svelte popularity keeps growing. It's often seen as a modern alternative to React. A big change is coming soon with Svelte 5, "the most anticipated release in the project's history", that introduces runes to address some of the "pain points" when handling state reactivity. This short video from Rich Harris does a great job of explaining the problems fixed by the runes.
One of the stories of the year is related to Svelte and caused a lot debates (E.g. Hacker News): the Svelte team has chosen to use JavaScript with JSDoc annotations instead of TypeScript, to avoid the additional complexity and drawbacks associated with TypeScript, while still providing the benefits of type safety.
Sébastien is a React early adopter, working with Facebook Open-Source on Docusaurus.
He runs a weekly newsletter about React and React Native: This Week in React
In 2023, we saw React enter its third era with the advent of React Server Components.
The React core team and Vercel collaborated to release the first stable implementation: Next.js 13.4 App Router. Despite leading an exciting innovation and deploying consequent resources, Vercel received its fair share of criticism for its privileged relationship with the React core team and early access to experimental features. In early 2023, it was common to see new React features being documented first on the Next.js documentation. The community didn’t appreciate certain design decisions, such as the extension of the fetch()
API, on which they are now backtracking. It was also common to see complaints about the stability of the App Router, and the performance of its development server. Nevertheless, React Server Components early adopters reported many promising benefits, such as smaller bundle sizes and greatly simplified code.
The React team clarified its position and rollout strategy for its new experimental features. It is fine for frameworks to adopt canary versions, whose breaking changes will be documented. They have also caught up with documentation, ending the year with a great React Docs Update, thoroughly documenting the newest APIs (useFormState, , ‘use server’ ...).
We also saw the advent of Server Actions, a new React core feature first implemented as stable in Next.js 14, enabling seamless RPC calls for form submissions and mutations. Similar to the philosophy of Remix, Server Actions are designed with progressive enhancement in mind.
In 2024, it will be exciting to see other frameworks adopt React Server Components, notably:
We are eagerly waiting for React 19, which should be coming soon.
Core team member of Nuxt, speaker, open-source enjoyer, and Developer Experience Engineer at Prismic.
With Vue 2 announced to sunset at the end of 2023, this year was deemed to be a turning point for Vue and its community with lots of us embarking on the journey to upgrade to version 3.
In that regard, efforts were made to help with migrating, the ecosystem caught up and kept on developing itself: it showed great results! Nuxt 3 now has more downloads than Nuxt 2. UI frameworks, like Vuetify and PrimeVue, are readier than ever to help build large (and less large!) applications. Libraries such as VueUse, Pinia, or even TresJS kept on growing and enhancing themselves to better empower us all.
Like in 2022, the Developer Experience was still was still a top priority. Vue 3.3 brought in improved TypeScript support for <script setup>
. Nuxt released 8 minor versions and unveiled Nuxt DevTools, a creative and insightful UI to help us better understand our apps and develop them faster.
Looking forward, and as Evan said, 2024 is set to be an exciting year for Vue. Vue 3.4 is right around the corner and Vapor mode, now open-sourced, is progressing well. All of it tuning the new year for more performance improvements and community innovation.
This year too Next.js is the leading project in the backend/fullstack category.
The version 14 focuses on improving server actions and introduces a new Partial Preview rendering mode.
With React Server Components, developers can build web applications with new paradigms that can simplify drastically the code: fetching data directly from a component that is made async
and mutating data by binding forms to server actions.
A lot has been said about this presentation that showcases making an SQL request directly from a component, but people may have missed the point: React Server Components can behave like self-contained components that can be dropped any where in your application, without any tedious wiring, the video does a great job to help building the new mental model made possible by RSC, showing a mix of server and client components that work seamlessly.
At two, Astro keeps climbing the rankings. Besides the original concept (generate ultra fast static sites that run without JavaScript and add interactivity with islands using the UI framework of your choice) it can be used to generate pages dynamically too.
I was impressed by the simplicity the templating system of .astro
files (very close to JSX) and by the great DX (the CLI is a beauty!).
Version 4 introduces a new toolbar for development, automatic i18n routing and a new View Transition API to improve the UX.
Bun is also a bundler so we included it this year in the "Building Tools" category.
At two Vite is still the most popular versatile bundler, powering meta frameworks such as Astro, Nuxt, Remix, SolidStart, SvelteKit...
Version 5 released in November, is built on top of rollup 4, bringing performance improvements.
Evan You announced he was working on Rolldown a port of Rollup in Rust that will be integrated to Vite. So the future of Vite is bright!
At three, the rise of Biome is one of the stories of the year. It's related to the fall of Rome, an ambitious project that aimed to unify web tooling (compiling, linting, formatting, bundling, testing). The company behind the project failed and the project was stopped this year.
Fortunately the project was forked and re-born under the name of Biome.
In November, Biome won the Prettier Challenge: creating "a Rust-powered code formatter that could pass over 95% of Prettier’s tests". Prettier being such a standard, we can expect more adoption of Biome in 2024.
Speaking of Rust, Oxc and Rspack are the new players in this space, coming from the ByteDance team. Rspack provides compatibility with Webpack while delivering unmatched performance. For the first time since we started Rising Stars, it's weird not to see Webpack in the rankings given the number of projects that use it!
Lead of Developer Tools at Expo. Native iOS and Android developer. Author of Config Plugins and Expo CLI.
In 2023, the mobile space made significant progress towards unifying the web and native development experiences. This is evident from the top projects Expo (#1), Tamagui (#3), and Nativewind (#6) which share the goal of maximizing code reuse and increasing accessibility for web developers.
There's a clear trend toward better styling solutions in React Native with Tamagui (#3), Nativewind (#6), and React Native Paper (#7) leading the way. This mirrors the web community, where shadcn-ui ranked #1 in overall popularity. I doubt this movement will slow down in 2024.
In 2022, the official recommendation from the React team shifted from boilerplate solutions like Create React App to framework-first solutions like Remix and Next.js. A year later, we can see a similar shift in the React Native ecosystem. Tools like Expo, Tamagui, and Ignite, which offer many framework-first attributes, have all trended upward in popularity. This shift indicates a move away from framework-less React Native towards more opinionated solutions by default, signaling the evolution of mobile development paradigms. I predict this trend will continue in 2024.
React Native's dominance is evident with seven of the top ten projects based on this library. However, the presence of three webview-based projects in this list suggests a lingering interest in deploying websites directly to app stores as-is. Perhaps 2024 will be the year that we see these two approaches start to converge.
Overall it was a fantastic year for mobile development. I predict 2024 will have continued interest in styling solutions for React Native, more rendering patterns for native (likely with React Server Components on native), better server integration to support AI-driven apps, and possibly some interesting visionOS projects.
Let's recap some of the stories and dramas of 2023:
We saw the rise of AI tools that can generate UI from prompts and even images making people wonder if there will be frontend developers in a few years.
As I pen down this summary for the eighth time, one can't help but wonder: Could an AI take over this task next year?
If you enjoyed this roundup, share your appreciation, and who knows, we might be back in a year for the 2024 Rising Stars!
Authors
Creator of Best of JS
Overall winner: shadcn/ui 🏆
The hottest project of the year is shadcn/ui, a collection of UI components written in React, allowing customizable styling through TailwindCSS.
Built on top of Radix, a set of headless components providing primitives for concerns like accessibility and keyboard interactions, shadcn/ui distinguishes itself from other popular libraries (such as MUI, ChakraUI, React Spectrum) by not being a downloadable NPM package. Instead, you integrate the shadcn/ui components through a terminal command that installs the underlying dependencies and copies the component source code directly into your codebase for further modification.
The project's success is closely tied to the widespread popularity of Tailwind CSS (number 20 overall), its compatibility with React Server Components, and the presence of excellent documentation.
It seems all new shiny React projects have adopted shadcn/ui. It was even chosen by Kent C. Dodds for his cutting-edge Epic Stack.
Another example involving AI: from a user prompt describing the features and the look-and-feel of a piece of UI, the application v0.dev generates the JSX code made of shadcn/ui components. Mesmerizing!
Last but not least, Best of JS uses them too, after the rewrite I did to transition from a SPA to a Next.js app.
Its approach has already inspired other projects:
For an in-depth analysis, refer to the article The anatomy of shadcn/ui.
Number two: Bun
Bun, the champion of 2022, keeps its tremendous momentum.
Bun aims to be a fast, all-in-one toolkit for running, building, testing, and debugging JavaScript and TypeScript applications.
The version 1 was officially released in September (check the peak in the graph!) and Bun claims to be "production-ready".
The docs provide great recipes to help get started as fast as possible with Bun APIs and common tasks such as file manipulation and handling database interactions.
A strong statement was made at the end of the year:
The compatibility with most of the Node.js eco-system (including the support of good old CommonJS imports via
require
) and the support of the main full-stack frameworks (Next.js, Nuxt, Astro...) can make it possible!