The all-new interactive learning experience that teaches you how to build rich, dynamic web apps with React.


So, let’s be real. Learning React is hard.
Over the past few years, React has become a “must-have” skill for front-end developers. Just about every job posting lists it as a pre-requisite!
If you’ve tried to learn React, though, you know it can be confusing and overwhelming. There’s just so much to know, and most of the tutorials out there assume a ton of prior knowledge and context.
Maybe you’ve gotten stuck in tutorial hell, following tutorial after tutorial without ever making tangible progress, like a mouse on a running wheel. You’ve built so many dang “Todo list” apps now, and yet when you try to build your own project, you don’t know where to start.
You want to learn React, but you’ve struggled. 😬
I want to help.
Over the past year, I’ve been hard at work building the ultimate React course for beginners.
The Joy of React is an interactive course. You won’t just sit and watch me code. There are tons of exercises, real-world-inspired projects, and fun mini-games and activities. It’s not like any other course you’ve taken before (unless you’ve taken my CSS course, in which case, it’s quite a bit like that).
We learn React from the ground up, building a robust mental model we can use to understand React and solve hard problems. I’ll share the dozens of epiphanies I’ve had after more than 8 years of React experience.
We won’t just learn about React, either; we cover everything you need to know to succeed as a React developer, including modern JavaScript syntax, along with a ton of helpful community tools and packages.
The truth is, React is a joy to use.
Once you get the hang of it, React is a dream. I’ve tried most popular JS frameworks, and nothing else makes me feel as empowered as React.
I care a lot about the user experience, including things like performance, accessibility, polish. Getting this stuff right is not easy. But the React community has stepped up, and there are so many wonderful solutions we can leverage.
We first need to build a rock-solid foundation, to truly understand React conventions and best practices. Then, we’ll see how “secret weapon” community packages extend our reach.
This is a recipe for uninterrupted flow state. It’s pure joy, and I want you to experience it.
Let me tell you how The Joy of React will make it so.
The Joy of React feels like playing a video game. You have text, videos, coding challenges, mini-games, well timed jokes and a boss at the end of each section. You never get bored!
It does an exceptional job at explaining all deep decisions and trade-offs we’ve made when creating React in a way a beginner can understand.
As someone who has experience using and teaching React, I can’t emphasize enough: This is the knowledge you need to know React at a deep level.
Josh covers the fundamentals in this course in a way that is incredibly intuitive, and yet not overwhelming. It’s so important to know why you are building applications in certain ways, not just how, and this course covers both.
Even if you’ve built with React before, this course will fill in gaps in your understanding. Bring out your notebooks and get ready to fill your brain!
TheCurriculum
Module 1 React Fundamentals
In this first module, we introduce React, and build a common understanding we’ll use throughout the course.
We’ll learn all about JSX, components, and props. We’ll discover how to do iteration and conditional rendering in React. We’ll also cover styling in React.
As someone who has taught React to hundreds of students in-person, I know what all of the common early stumbling blocks are, and we address them head-on in this module.
We go surprisingly deep in this module. By the end of Module 1, you’ll understand how JSX differs from a templating language, what a React element is, why keys are necessary… you’ll even build your own stateless mini-React from scratch, so you know exactly how it works under-the-hood!
Module 2 Working With State
The real magic starts with state. React state allows us to make dynamic applications that feel alive.
In this module, we learn how to use event handlers and React state to update the UI based on user actions. We’ll learn how to wire up forms, how to work with complex state structures, and how to manage state across the application.
We’ll also deepen our understanding of how React works. We’ll learn why React sometimes feels so much more complicated than other frameworks. We’ll discover the crucial role that React component instances play. And we’ll learn how to leverage best practices like lifting state up.
There’s lots of fun exercises in this module. We build a couple of mini-games, and see how to build a minimal version of my Gradient Generator project.
Module 3 React Hooks
In 2019, React was revolutionized with the addition of hooks. Hooks allow us to “hook into” React internals.
In this module, we really start to find our groove. Here are some of the things we cover in this module:
- Managing side effects with the
useEffect
hook. - Capturing and persisting DOM references with the
useRef
hook. - Fetching data from the network with Fetch + the useSWR library.
- Optimizing the performance of our applications with
useMemo
anduseCallback
. - Creating our own abstractions with custom hooks.
Stuff gets real in this module. We cover some of the hardest concepts in React, like avoiding stale values in our side effects. To help us make sense of the hard stuff, we double down on our efforts to understand how React ticks, learning why immutability is so important, what exactly a “render” is, and more.
Module 4 Component API Design
Alright, so we’ve covered most of the React API by this point… How do we assemble all of this knowledge to ensure we’re building scalable, well-architected applications?
Since I started working with React in 2015, my thinking has evolved quite a bit in terms of how to structure things. I’ve learned so much along the way. My goal with this module is to let you skip a few years of experimentation, and jump straight to the patterns that work best.
I’ll share the high-level mental models I use every day, like understanding the “spectrum of components”, or thinking in terms of producers and consumers.
At a more granular level, we’ll learn a bunch of new tricks to help us build wonderful components. Polymorphism, context, ref-forwarding, prop delegation, and slots are all tools I use in my work to write the best components possible.
We’ll also touch on important usability and accessibility principles. You’ll get to build your own UI primitives from scratch (and see why it’s probably a better idea to use a library).
Module 5 + 6 And so much more to come!And more to come!
The course today includes the first 4 modules we’ve seen, along with 2 real-world-inspired projects and some bonus reference modules.
There will be six modules in total, though. I’ll be developing 2 more modules over the coming months.
What will they cover? Well, that’s partially up to you! I have some ideas about what I’d like to cover, but I might tweak those plans based on your feedback. For example, if there’s lots of confusion around a specific concept, I’ll create more content to address that confusion!
Here’s the current “rough draft” plan:
- “Secret weapon” packages — how I use tools like Immer or Framer Motion to solve problems and build cool things.
- Server-side rendering — understanding how rehydration works, writing SSR-safe code.
- Routing — we’ll likely use Next.js to explore how routing works in React.
- “Advanced problems”, digging deeper into tricky concepts like race conditions, using refs to manage stale values, etc.
- Debugging tips and tricks
- Suspense and lazy loading
As I do throughout this course, we’ll continue to focus on building our intuition of how React works, and how we can use it to build cool things. I’ll continue to share the “happy practices” I’ve learned in my career as a React developer.
There’s so much good stuff I’m excited to include here!
Level up the whole team ✨
Train multiple devs at your organization with Team Licenses. You’ll get the same 50% launch discount, plus you’ll be able to manage your team through our Team Administrator dashboard.
This course is an absolute masterpiece! Josh keeps things exciting by switching between illustrated explanations, friendly videos, and targeted exercises. You’ll build a mental model you can use throughout your journey.
What a wonderful way to learn React!
I’ve known Josh for years, and he’s built some incredible things with React. This course does a fantastic job explaining how React works and how to get the most out of it. If there’s someone who can make you feel comfortable with React, it’s Josh!
Let’s hear from theTest Squad
This course has been developed with the help of ~70 developers in the “Test Squad”. These devs have gone through the content and provided feedback, helping me find my blind spots and ensure that the course is a smooth and fun learning experience.
This has been a varied group, from folks who have never tried to work with React, to folks who have used it for years.
Here’s what they had to say about The Joy of React:
I can confidently say that The Joy of React is one of the most polished courses I’ve had the pleasure of going through. With the mix of text, screencasts, interactive exercises, games and practice projects, I feel like everything is finally starting to click for me!
Josh doesn’t gloss over stuff like most tutorials, but instead makes sure you understand how React works on a fundamental level.
What I really like about Josh’s way of teaching is that he takes the time to explain concepts from the ground up. The exercises are fun and quirky, which makes it joyful to complete the course. I also love the accessibility perspective, a subject I feel needs a lot more focus among developers.
After finishing both of Josh’s courses, I use them as a library for knowledge in my day to day work, and I look up something at least once a week.
Before The Joy of React, my experience with react apps was incredibly painful and confusing. After going through this course, everything makes so much more sense. I can’t imagine a better way to learn react and modern JS foundations.
The Joy of React course is comprehensive, well-thought out, and delightful to work through. ✨
This is not only for beginners! If you’ve used React for a while but are not sure how things work under the hood (like me), you will learn A LOT 🤩
Before taking this course, I knew how to build apps with React, but not why any of it functioned. Based on Josh’s previous work, I was confident that The Joy of React would help me understand the bigger picture. My expectations were met — hands-down!
Josh has a knack for distilling complex ideas into polished and crystal clear explanations. If you enjoy carefully crafted content and want to finally wrap your head around React, you’re in for a treat.
This course is so much fun. Josh’s ability to break down concepts in a structured and simple way using analogies, diagrams, mini-games, and exercises is second to none. My understanding of React has significantly improved after completing this course, and I know I’ll be coming back to it for reference for many years to come.
I started this course with zero knowledge of React. I now feel not only like I know what I’m doing with React, but also why I’m doing it. Josh has the wonderful skill, so rarely found in experts, of being able to clearly explain complicated things to someone totally new to a subject in a fun and engaging way. If you are new to React, I can whole-heartedly recommend this course.
I am extremely satisfied with the knowledge I have gained. The course has covered all the necessary topics and the explanations have been excellent. Taking this course has been the best decision I made and I would highly recommend it to others.
This course truly lives up to its name. I’ve used React for awhile now, but this is the first resource that has helped me build a proper intuition for what’s going on under the hood with React.
The fantastic interactive resources you see on Josh’s blog posts are here in abundance. I love the way different types of learning resources are used in the course. From Interactive code playgrounds, well-written explanation and video resources, there’s something for everyone, regardless of the way you learn.
Even though I have several years of experience in React, I could still deepen my understanding of modern web development. Josh precisely collected all the crux and pitfalls that an ordinary dev can experience. Give it a try, you won’t regret it.
The Joy