React Roadmap

This React Roadmap is a free, full-text syllabus of 79 lessons in 20 stages, starting with CLI Tools and ending with Mobile Applications. It suits anyone who wants to learn React, whether new to it or filling gaps. There is no fixed length: every lesson is open from the start, so you go at your own pace and skip what you already know.

Last updated

Getting Started0%
Halfway
Almost There
Complete

Reading is open to everyone. Sign in to join this roadmap and track what you finish.

Continue learning

1. CLI ToolsCLI Tools

0%

CLI Tools

2 topics · 1 sub-topics · 0 completed

0%

Full syllabus: every lesson in the React roadmap

20 stages and 79 lessons, in the order the roadmap suggests. Every lesson is free to read and open from the start.

  1. Stage 1: CLI Tools

    • CLI Tools

    • Vite

      Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects.

  2. Stage 2: Components

    • Components

      Components are the building blocks of React applications. They let us split the UI into independent, reusable pieces, and think about each piece in isolation.

  3. Stage 3: Rendering

    • Rendering

      React follows a declarative approach to rendering components, which means that developers specify what a component should look like, and React takes care of rendering the component to the screen. This is in contrast to an imperative approach, where developers would write code to manually manipulate the DOM…

    • Functional Components

      Functional components are some of the more common components that will come across while working in React. These are simply JavaScript functions. We can create a functional component to React by writing a JavaScript function. These functions may or may not receive data as parameters. In the functional Components,…

    • JSX

      JSX stands for JavaScript XML. It allows writing HTML in JavaScript and converts the HTML tags into React elements.

    • Props vs State

      Props (short for “properties”) and state are both plain JavaScript objects. While both hold information that influences the output of component render, they are different in one important way: props get passed to the component (similar to function parameters) whereas state is managed within the component (similar…

    • Conditional Rendering

      In React, you can create distinct components that encapsulate behavior you need. Then, you can render only some of them, depending on the state of your application.

    • Composition

      React has a powerful composition model, and it is recommended to use composition instead of inheritance to reuse code between components.

    • Component Lifecycle

      React components have a lifecycle consisting of three phases: Mounting, Updating, and Unmounting along with several “lifecycle methods” that you can override to run code at particular times in the process.

    • Lists and Keys

      When you render lists in React, you can use the key prop to specify a unique key for each item. This key is used to identify which item to update when you want to update a specific item.

    • Render Props

      The term 'render props' refers to a technique for sharing code between React components using a prop whose value is a function.

    • Refs

      Refs provide a way to access DOM nodes or React elements created in the render method.

    • Events

      Handling events with React elements is very similar to handling events on DOM elements. There are some syntax differences:

    • High Order Components

      A higher-order component (HOC) is an advanced technique in React for reusing component logic. HOCs are not part of the React API, per se. They are a pattern that emerges from React’s compositional nature.

  4. Stage 4: Hooks

    • Hooks

      Hooks were introduced in React 16.8 and they let us use React's features-like managing your component's state and or performing an after effect when certain changes occur in state(s) without writing a class.

    • Creating Custom Hooks

      Building your own Hooks lets you extract component logic into reusable functions.

    • Hooks Best Practices

      To fully leverage the capabilities of React Hooks, it is crucial to adopt best practices that not only enhance code readability but also optimize performance. By adhering to these practices, developers can create cleaner, more maintainable components that make the most of React's powerful features, leading to a…

  5. Stage 5: Routers

    • Routers

      Routing is an essential concept in Single Page Applications (SPA). When your application is divided into separated logical sections, and all of them are under their own URL, your users can easily share links among each other.

    • React Router

      React Router is a standard library for routing in React applications. It enables navigation between different views or components within a single-page application (SPA) without requiring the browser to reload the page. It provides a declarative way to define routes and map them to specific components, allowing…

    • Tanstack Router

      TanStack Router is a powerful router for building React applications, offering a range of advanced features to streamline development.

    • useState

      useState is a React Hook that lets you add state to functional components. When you call useState, you get back the current state value and a function to update it, allowing components to store and manage data that persists between renders.

    • useEffect

      useEffect is a special hook that lets you run side effects in React. It is similar to componentDidMount and componentDidUpdate, but it only runs when the component (or some of its props) changes and during the initial mount.

    • useCallback

      useCallback is a React hook that returns a memoized version of a callback function. It's used to optimize performance by preventing unnecessary re-renders. Specifically, it helps avoid recreating functions when their dependencies haven't changed, which can be useful when passing callbacks to child components that…

    • useRef

      useRef is a React hook that provides a way to create a mutable reference that persists across component re-renders. It stores a value that doesn't cause re-renders when it changes.

    • useReducer

      useReducer: An alternative to useState. Accepts a reducer of type (state, action) = newState, and returns the current state paired with a dispatch method. (If you’re familiar with Redux, you already know how this works.)

    • useMemo

      useMemo is a React hook that memoizes the result of a function. It is used to optimize performance by caching the result of a function and returning the cached result when the inputs to the function have not changed.

    • useContext

      The useContext Hook lets us share data between components without having to pass props down through every level of the component tree. This is particularly useful when many components need to access the same data or when components are deeply nested.

  6. Stage 6: State Management

    • State Management

      Application state management is the process of maintaining knowledge of an application's inputs across multiple related data flows that form a complete business transaction -- or a session -- to understand the condition of the app at any given moment. In computer science, an input is information put into the…

    • Zustand

      Zustand is a small, fast and scalable bearbones state-management solution using simplified flux principles. Has a comfy api based on hooks, isn't boilerplatey or opinionated.

    • Jotai

      Jotai takes an atomic approach to global React state management.

    • MobX

    • Context

      Context provides a way to pass data through the component tree without having to pass props down manually at every level.

  7. Stage 7: Writing CSS

    • Writing CSS

      While "CSS in JS" is the most predominant way of styling modern frontend applications, there are several different ways to style your React applications whether it is vanilla CSS, CSS Modules, or CSS in JS etc and each has several frameworks available.

    • Panda CSS

      Panda CSS is CSS-in-JS with build time generated styles, RSC compatible, multi-variant support, and best-in-class developer experience.

    • CSS Modules

      CSS files in which all class names and animation names are scoped locally by default.

    • Tailwind CSS

      CSS Framework that provides atomic CSS classes to help you style components e.g. flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.

  8. Stage 8: Component / Libraries

    • Component / Libraries

      React component libraries are collections of pre-built, reusable components that can be used to speed up the development process. They can be styled using CSS in various ways, including traditional CSS files, CSS modules, and CSS-in-JS solutions like styled-components.

    • Material UI

      Material UI is an open-source React component library that implements Google's Material Design.

    • Chakra UI

      Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications.

    • Shadcn UI

      Shadcn is an open-source framework providing pre-built, accessible, and customizable UI components for rapid web application development. It offers a streamlined approach to construct modern user interfaces.

  9. Stage 9: Headless Components

    • Headless Components

      Headless component libraries have some powerful state, logic and data management tools that do not enforce any UI structure. Consequently, developers are able to build custom UI components with unique styles but that still benefit from strong reusable logics. This kind of library simplifies complex behaviors and…

    • Radix UI

      Radix UI is an open-source library designed to make it easier to create accessible and customizable User Interface (UI) components in React. It provides developers with a range of unstyled, fully accessible primitives, giving them complete control over the appearance and behavior of their UI elements.

    • React Aria

      React Aria is style-free out of the box, allowing you to build custom designs to fit your application or design system using any styling and animation solution. Each component is broken down into individual parts with built-in states, render props, and slots that make styling a breeze.

    • Ark UI

      It is a modern and versatile user interface framework designed to streamline the development of responsive and accessible web applications. It provides a comprehensive set of components and tools that simplify the process of building user interfaces, allowing developers to focus on functionality and design. With a…

  10. Stage 10: API Calls

    • API Calls

      APIs, short for Application Programming Interfaces, are software-to-software interfaces. Meaning, they allow different applications to talk to each other and exchange information or functionality. This allows businesses to access another business’s data, piece of code, software, or services in order to extend the…

    • Apollo

      Apollo is a platform for building a unified graph, a communication layer that helps you manage the flow of data between your application clients (such as web and native apps) and your back-end services.

    • Relay

      Relay is a JavaScript client used in the browser to fetch GraphQL data. It's a JavaScript framework developed by Facebook for managing and fetching data in React applications. It is built with scalability in mind in order to power complex applications like Facebook. The ultimate goal of GraphQL and Relay is to…

    • urql

      urql (Universal React Query Library) is a library for managing GraphQL data in React applications. It is developed and maintained by Formidable Labs and is available as open-source software.

  11. Stage 11: Testing

    • Testing

      A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code.

    • Vitest

      Vitest is a fast Vite-native unit test framework with out-of-box ESM, TypeScript and JSX support. Works on React, Vue, Svelte and more projects created with Vite

    • Playwright

      Playwright Test was created specifically to accommodate the needs of end-to-end testing. Playwright supports all modern rendering engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation of Google Chrome for Android and…

    • react-testing-library

      The React Testing Library is a very lightweight solution for testing React components. It provides light utility functions on top of react-dom and react-dom/test-utils, in a way that encourages better testing practices. Its primary guiding principle is: The more your tests resemble the way your software is used,…

    • Jest

      Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!

    • Cypress

      Cypress framework is a JavaScript-based end-to-end testing framework built on top of Mocha – a feature-rich JavaScript test framework running on and in the browser, making asynchronous testing simple and convenient. It also uses a BDD/TDD assertion library and a browser to pair with any JavaScript testing framework.

    • Tanstack Query

      TanStack Query, previously known as React Query, is a powerful library for fetching, caching, synchronizing, and updating server state in your React applications. It simplifies the process of handling asynchronous data, reducing boilerplate code and improving the user experience by providing features like automatic…

    • Axios

      The most common way for frontend programs to communicate with servers is through the HTTP protocol. You are probably familiar with the Fetch API and the XMLHttpRequest interface, which allows you to fetch resources and make HTTP requests.

    • swr

      SWR is a React Hooks library for data fetching.

    • rtk-query

      RTK Query is a data fetching and caching tool that is included in the Redux Toolkit package. It is designed to simplify common use cases for fetching data, including caching, polling, and invalidation.

  12. Stage 12: Forms

    • Forms

      Although you can build forms using vanilla React, it normally requires a lot of boilerplate code. This is because the form is built using a combination of state and props. To make it easier to manage forms, we use some sort of library.

    • React Hook Form

      React hook form is an opensource form library for react. Performant, flexible and extensible forms with easy-to-use validation.

    • Formik

      Formik is another famous opensource form library that helps with getting values in and out of form state, validation and error messages, and handling form submissions.

    • Formish

  13. Stage 13: Frameworks

    • Frameworks

      Server-side rendering (SSR) is a technique for rendering a JavaScript application on the server, rather than in the browser. This can improve the performance and user experience of a web application, as the initial render of the application is done on the server and the content is sent to the browser as a…

    • react-router

      There used to be Remix in this list but they announced to merge Remix into react-router after v7.

    • Astro

      Astro is the web framework for building content-driven websites like blogs, marketing, and e-commerce. Astro is best-known for pioneering a new frontend architecture to reduce JavaScript overhead and complexity compared to other frameworks. If you need a website that loads fast and has great SEO, then Astro is for you.

    • Next.js

      Next.js is an open-source development framework built on top of Node.js enabling React based web applications functionalities such as server-side rendering and generating static websites.

  14. Stage 14: Types & Validation

    • Types & Validation

      Typescript provides a static type system that helps you in avoiding mistakes during the development and provides other features (e.g. IDE support) that help you improve your productivity.

    • TypeScript

      TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

    • Zod

      Zod is a TypeScript-first schema declaration and validation library. I'm using the term "schema" to broadly refer to any data type, from a simple string to a complex nested object.

    • Valibot

  15. Stage 15: Animation

    • Animation

      Animation in React can be achieved using various methods, such as CSS transitions, keyframes, or libraries like react-spring, framer-motion, and GSAP (GreenSock Animation Platform). CSS transitions are ideal for simple animations, where you can toggle classes or manipulate inline styles to create smooth…

    • Framer Motion

      Framer Motion is a popular open-source motion library for React that allows developers to create sophisticated animations and interactions with ease. It is designed to be simple to use yet powerful, providing a rich set of tools to animate elements in a declarative way.

    • react spring

      React Spring is a popular animation library for React that leverages the principles of spring physics to create smooth, natural-looking animations. Unlike traditional animation libraries that rely on keyframes and linear transitions, React Spring uses spring-based physics to produce fluid and realistic animations…

    • GSock

      GSAP (GreenSock Animation Platform) is a framework-agnostic JavaScript animation library that turns developers into animation superheroes. Build high-performance animations that work in every major browser. Animate CSS, SVG, canvas, React, Vue, WebGL, colors, strings, motion paths, generic objects...anything…

  16. Stage 16: Error Boundaries

    • Error Boundaries

      In the past, JavaScript errors inside components used to corrupt React’s internal state and cause it to emit cryptic errors on next renders. These errors were always caused by an earlier error in the application code, but React did not provide a way to handle them gracefully in components, and could not recover…

  17. Stage 17: Server APIs

    • Server APIs

      The react-dom/server APIs let you render React components to HTML on the server. These APIs are only used on the server at the top level of your app to generate the initial HTML. A framework may call them for you. Most of your components don’t need to import or use them.

  18. Stage 18: Suspense

    • Suspense

      React Suspense is a feature in React that allows components to "suspend" rendering while they are waiting for something to happen, such as data to be fetched from an API or an image to be loaded. Suspense allows developers to create a more seamless user experience by rendering a placeholder or fallback component…

  19. Stage 19: Portals

    • Portals

      Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component.

  20. Stage 20: Mobile Applications

    • Mobile Applications

    • React Native

      React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.

Questions about the React Roadmap

Is the React Roadmap free?

Yes. All 79 lessons in this roadmap are free to read on Bibha AI Learning Labs, with no account and no payment. Signing in is optional: it lets you mark lessons as done and keep your progress, and it opens the AI tutor, which runs on your own API key.

How long does the React Roadmap take?

There is no fixed duration. It has 79 lessons in 20 stages, and the time it takes depends on how many hours you give it each week. Nothing is locked, so you can skip what you already know, and your progress is saved once you sign in.

Where should I start the React Roadmap?

Start with stage 1, CLI Tools, and work down in order. The stages are numbered in the order the roadmap suggests, but every lesson is open, so if you already know CLI Tools you can go straight to Components or anything after it. Each lesson links to free resources for going deeper.

Can I learn React in Hindi?

The lessons are written in English. Once you sign in, you can ask the AI tutor on any lesson to explain it in Hindi or Hinglish. It answers from that lesson’s own text, so the explanation stays on the syllabus. The tutor runs on your own Google, OpenAI or Anthropic key.

Still confused? Ask me