Brock Herion

Eight great React libraries you need to be using in 2023

April 16, 2023 4 minute read

I don’t think it’s any secret that React is the most popular library for building web apps. And with Reacts popularity has come a huge ecosystem of libraries that you can use within your React applications. You can find everything from UI kits to state management to data fetching. Whatever it is you’re trying to do in your React app, there’s probably a library out there to help make your life a little bit easier.

In this article, I’ll be sharing eight of my favorite libraries that I almost always use in every app I build.

Eight great React libraries

Each library I picked serves a specific purpose in my stack. I try to not use libraries that do too many things. I would rather a library do one thing and do it well than to try and do too many things.

These libraries provide a ton of great functionality with a great developer experience. This allows me to not only build and ship features to my users, but have a pleasant experience doing so.

Now, here are the eight great React libraries you need to be using in 2023.

TanStack Query (formerly React Query)

TanStack Query is an awesome library that makes data fetching a breeze. It makes things like fetching, caching, and synchronizing remote data much easier. It greatly simplifies working with remote data in your React applications. And when you pair it with tRPC, you’re in for one of the best full-stack development experiences around.

Link: TanStack Query

React Icons

Whenever I need icons for an app, I reach for React Icons. It provides a ton of different high quality icons from different packs in one place. You can use icons from Font Awesome, Material Icons, Hero Icons, and many more. React Icons makes it really easy to add and customize icons to suit your applications needs.

Link: React Icons

Zustand

Zustand is a lightweight and easy-to-use state management solution. Based around hooks, it’s API makes dealing with application state a breeze while avoiding issues found in other solutions. No matter how simple or complex your state might be, Zustand can handle it.

Link: Zustand

date-fns

Dates in JavaScript are a pain to deal with. Luckily, date-fns makes them much easier to work with. It provides a ton of functionality around date formatting, comparisons, timezones, and much more. It’s simple to work with and I find myself reaching it for it constantly whenever I’m doing date-heavy work.

Link: date-fns

Recharts

Data-driven applications most likely have a need to display data in some form of charts. Recharts let’s you quickly and simply add beautiful charts to your React applications. From area charts to tree graphs, Recharts provide a chart for every use case.

Link: Recharts

Headless UI

Headless UI provides a series of unstyled components for you to use in your applications. It makes building things like modals, menus, comboboxes, and tabs so much easier. Because the components are unstyled, you have full control over the look and feel of them.

Link: Headless UI

clsx

clsx is a small library that makes conditionally styling your React components easier. When a condition passed in evaluates to true, that class will be applied. clsx gives a flexible yet powerful way to conditionally apply classes to components.

Link: clsx

React Hook Form

Like dates, forms can be really tough to deal with. React Hook Form takes the pain of building React forms away. With a few simple hooks, it lets you build performant and robust forms with ease. It also provides validation out of the box, which can be taken a step further with libraries like Zod.

Link: React Hook Form

Other libraries

These are just eight of my favorite React libraries. Of course there’s more that I use quite regularly and have a great experience doing with them. These include things like tRPC and Tailwind. I adore these libraries and they work really well within React, but they don’t necessarily need to be used with it.

You might also have other libraries you prefer using, say SWR over TanStack Query. That’s all well and good, as long as the tooling you’re using works for you. At the end of the day, it’s important to remember that you’re users don’t care what you use, so long as you’re shipping them useful features.

Brock's Bytes

Every Sunday, I share an exclusive email newsletter sharing my thoughts on code, tech, business, and life. Sign up now and join a growing community of readers!