Learn React 19 with Epic React v2
Are you ready for the React 19 revolution? The most in-demand JavaScript framework has received a massive update! You are already familiar with React, but React 19 introduces 3 major paradigmatic changes that will transform your code (and possibly your life):
React Suspense and Transitions: eliminate complex workarounds and take full control of data loading, both synchronously and asynchronously, to deliver the smoothest user experience possible. Form and Server Actions: forget about useEffect hacks forever (finally!), creating the exact data input experience you need for SSR, SSG, and SPA applications. 'use client' and 'use server': write server and client code in harmony, avoiding inconvenient transitions.
More
Your code will become better, and the experience of writing - more enjoyable. React 19 is more fun as it finally provides a full set of tools for creating highly interactive, modular, and powerful web applications without compromises.
And even if you already have experience with React, you'll be able to refresh your knowledge using the best tools. It's a great time to start!
Mastering all of this is not an easy task. But it's worth it.
Now, as an experienced React developer, the key question arises: How will you master React 19?
I have taught React to over 30,000 people
Epic React v1 helped many start a career in React and develop it. But I knew it could be improved… So, when I decided to create new material for React 19, I radically changed the entire learning process.
But first and foremost, let's discuss an important point about learning React, no matter when, where, and how you want to learn it.
Over the past 10 years, I've learned a lot about the learning process.
And the main lesson?
Not all learning is equally useful. You've heard the old saying: "It's not what you know, but who you know"?
Developers need to update it: "It's not what you know, but how you know it." The way you learn can affect your entire career.
And here's the problem:
The way most people learn React can actively hinder your future progress. React is complex. It consists of many components. No one wants to waste time studying the documentation for each one before starting work. We all want to jump right into the most interesting part - using these tools together to create projects.
Creating something is moving forward.
But it's a trap.
What distinguishes true experts from everyone else is not having specialized, advanced knowledge. It's a complete mastery of the basics. It's understanding the components. It's knowing how each part of the process works in harmony to create a whole. It's the ability to go beyond what you've done before and approach each new task using all the tools you have.
This is what creates real confidence.
But when you strive to "quickly" achieve results by blindly copying code you don't yet understand, you miss the most important part. You miss the basics you'll need every day in your career: planning, designing, debugging, maintaining, scaling. You deprive yourself of future growth. You undermine your own confidence.
Fortunately, there's a better way.
How to become an expert
Based on observations, experiments, study, hundreds of hours of live teaching, and feedback from tens of thousands of my students...
Here's the path to true mastery:
- Learn one concept at a time
- Start with the simplest version
- Add complexity gradually, each exercise builds on the previous one
- Write practical code, check your work against best practices, get feedback
- Practice taking advice and sharing code with colleagues
- Don't skip anything (even if it seems "simple" or "obvious")
It's really that simple! Although "simple" is not the same as "easy."
But if you're ready to invest, the right learning will pay off for a lifetime.
You will become an expert.
And you can do this with Epic React v2.
Epic React v2 will take you from "what is JSX?" to developing a full, professional, scalable application in a team environment. When you switch to Epic React v2, you'll get instant access to 7 workshops with 240 small lessons - all new, all about React 19, and 100% TypeScript. All you need to do is log in and get started on your first exercise.
Epic React v2 is entirely based on "pure React" and is suitable for anyone using React in any field.
You will explore and review all aspects of React 19 - both classic and new - separately and together.
Each new lesson will build on the previous one.
In the end, you will develop projects such as blog search, integration of non-React UI libraries, tic-tac-toe, a form for new users, optimized globe rendering, a calculator, a counter, city list search, and creating your own framework for React Server Components.
Along the way, you will reinforce professional programming practices.
You will master form handling, one of the most challenging (and most powerful) parts of interactive web development.
You will learn to develop performance-efficient applications and optimize your existing code. (Bonus: these same techniques apply to non-React applications too!)
You will find out how to use AI-based helpers to significantly increase productivity. I use mine in all the Epic React video lessons. (They won't do the work for you, of course, but they can significantly help!)
So whether you're an intermediate developer looking to refresh your foundational knowledge…
…or an experienced React developer eager to learn what's new in React 19…
If you have been searching for a path to true mastery in React 19, you’ve found it with Epic React v2.
Watch Online Learn React 19 with Epic React v2
# | Title | Duration |
---|---|---|
1 | 001 Intro | 02:09 |
2 | 002 Hello World in JS p | 00:20 |
3 | 003 Hello World in JS s | 04:55 |
4 | 004 Generate the Root Node p | 00:17 |
5 | 005 Generate the Root Node s | 02:13 |
6 | 006 Dad Joke Break | 00:26 |
7 | 007 Intro to Raw React APIs | 03:06 |
8 | 008 Create React Elements p | 00:56 |
9 | 009 Create React Elements s | 03:05 |
10 | 010 Nesting Elements p | 00:25 |
11 | 011 Nesting Elements s | 03:32 |
12 | 012 Deep Nesting Elements p | 00:30 |
13 | 013 Deep Nesting Elements s | 01:18 |
14 | 014 Dad Joke Break Raw React APIs p | 00:27 |
15 | 015 Intro to Using JSX s | 02:49 |
16 | 016 Compiling JSX p | 01:08 |
17 | 017 Compiling JSX s | 04:52 |
18 | 018 Interpolationp p | 03:33 |
19 | 019 Interpolation s | 04:27 |
20 | 020 Spread props p | 01:23 |
21 | 021 Spread props s | 04:29 |
22 | 022 Nesting JSX p | 00:37 |
23 | 023 Nesting JSX s | 03:22 |
24 | 024 Fragments p | 02:10 |
25 | 025 Fragments s | 03:25 |
26 | 026 Dad Joke Break Using JSX | 00:25 |
27 | 027 Intro to Custom Components | 01:30 |
28 | 028 Simple Function p | 01:15 |
29 | 029 Simple Function s | 02:07 |
30 | 030 Raw API p | 01:37 |
31 | 031 Raw API s | 03:24 |
32 | 032 JSX Components p | 01:57 |
33 | 033 JSX Components s | 02:30 |
34 | 034 Props p | 00:50 |
35 | 035 Props s | 01:47 |
36 | 036 Dad Joke Break Custom Components | 00:36 |
37 | 037 Intro to TypeScript | 06:48 |
38 | 038 Props p | 01:17 |
39 | 039 Props s | 02:01 |
40 | 040 Narrow Types p | 00:51 |
41 | 041 Narrow Types s | 01:27 |
42 | 042 Derive Types p | 02:06 |
43 | 043 Derive Types s | 01:20 |
44 | 044 Default Props p | 01:02 |
45 | 045 Default Props s | 02:32 |
46 | 046 Reduce Duplication p | 01:32 |
47 | 047 Reduce Duplication s | 02:30 |
48 | 048 Satisfies p | 01:02 |
49 | 049 Satisfies s | 01:06 |
50 | 050 Dad Joke Break TypeScript | 00:51 |
51 | 051 Intro to Styling | 04:34 |
52 | 052 Styling p | 00:29 |
53 | 053 Styling s | 01:14 |
54 | 054 Custom Component p | 02:14 |
55 | 055 Custom Component s | 05:47 |
56 | 056 Size Prop p | 00:44 |
57 | 057 Size Prop s | 04:23 |
58 | 058 Dad Joke Break Styling | 00:24 |
59 | 059 Intro to Forms | 03:59 |
60 | 060 Form p | 00:39 |
61 | 061 Form s | 02:08 |
62 | 062 Form Action p | 01:47 |
63 | 063 Form Action s | 01:06 |
64 | 064 Input Types p | 00:28 |
65 | 065 Input Types s | 03:20 |
66 | 066 Submission p | 02:00 |
67 | 067 Submission s | 13:28 |
68 | 068 Form Actions p | 00:23 |
69 | 069 Form Actions s | 02:57 |
70 | 070 Dad Joke Break Forms | 00:21 |
71 | 071 Intro to Inputs | 01:03 |
72 | 072 Checkbox p | 00:51 |
73 | 073 Checkbox s | 02:48 |
74 | 074 Select p | 00:45 |
75 | 075 Select s | 02:46 |
76 | 076 Radios p | 01:43 |
77 | 077 Radios s | 02:52 |
78 | 078 Hidden Inputs p | 01:04 |
79 | 079 Hidden Inputs s | 01:13 |
80 | 080 Default Value p | 03:11 |
81 | 081 Default Value s | 05:37 |
82 | 082 Dad Joke Break Inputs | 00:41 |
83 | 083 Intro to Error Boundaries | 05:29 |
84 | 084 Composition p | 00:49 |
85 | 085 Composition s | 03:23 |
86 | 086 Other Errors p | 01:52 |
87 | 087 Other Errors s | 02:51 |
88 | 088 Reset p | 01:30 |
89 | 089 Reset s | 01:35 |
90 | 090 Dad Joke Break Error Boundaries | 00:44 |
91 | 091 Intro to Rendering Arrays | 05:37 |
92 | 092 Key prop p | 01:37 |
93 | 093 Key prop s | 01:51 |
94 | 094 Focus State p | 01:08 |
95 | 095 Focus State s | 02:14 |
96 | 096 Key Reset p | 00:53 |
97 | 097 Key Reset s | 01:30 |
98 | 098 Dad Joke Break Rendering Arrays | 00:26 |
99 | 099 Outro to React Fundamentals | 00:57 |
100 | 001 React Hooks Intro | 02:14 |
101 | 002 Intro to Managing UI State | 04:48 |
102 | 003 useState p | 01:26 |
103 | 004 useState s | 04:47 |
104 | 005 Controlling Inputs p | 02:40 |
105 | 006 Controlling Inputs s | 03:35 |
106 | 007 Derive State p | 02:07 |
107 | 008 Derive State s | 02:50 |
108 | 009 Initialize State p | 01:19 |
109 | 010 Initialize State S | 01:36 |
110 | 011 Init Callback P | 03:26 |
111 | 012 Init Callback S | 01:40 |
112 | 013 Dad Joke Break Managing UI State | 00:37 |
113 | 014 Intro to Side-Effects | 10:18 |
114 | 015 useEffect P | 01:38 |
115 | 016 useEffect S | 01:56 |
116 | 017 Effect Cleanup p | 01:33 |
117 | 018 Effect Cleanup s | 05:33 |
118 | 019 Dad Joke Break Side-Effects | 00:42 |
119 | 020 Intro to Lifting State | 02:56 |
120 | 021 Lift State p | 00:21 |
121 | 022 Lift State s | 01:42 |
122 | 023 Lift More State p | 00:56 |
123 | 024 Lift More State s | 04:33 |
124 | 025 Colocate State p | 00:57 |
125 | 026 Colocate State s | 03:36 |
126 | 027 Dad Joke Break Lifting State | 00:47 |
127 | 028 Intro to DOM Side-Effects | 03:52 |
128 | 029 Refs p | 00:39 |
129 | 030 Refs s | 04:02 |
130 | 031 Dependencies p | 02:22 |
131 | 032 Dependencies s | 05:05 |
132 | 033 Primitive Dependencies p | 03:02 |
133 | 034 Primitive Dependencies s | 02:22 |
134 | 035 Dad Joke Break DOM Side-Effects | 00:35 |
135 | 036 Intro to Unique IDs | 02:15 |
136 | 037 useId p | 00:49 |
137 | 038 useId s | 03:36 |
138 | 039 Dad Joke Break Unique IDs | 00:31 |
139 | 040 Intro to Tic Tac Toe | 01:24 |
140 | 041 setState callback p | 02:51 |
141 | 042 setState callback s | 05:13 |
142 | 043 Preserve State in localStorage p | 00:54 |
143 | 044 Preserve State in localStorage s | 03:36 |
144 | 045 Add Game History Feature p | 02:09 |
145 | 046 Add Game History Feature s | 08:32 |
146 | 047 Dad Joke Break Tic Tac Toe | 00:36 |
147 | 048 Outro to React Hooks | 01:36 |
148 | Advanced React APIs Intro | 03:34 |
149 | Intro to Advanced State Management | 04:49 |
150 | New State _ Problem | 00:54 |
151 | New State _ solution | 02:24 |
152 | Previous State _ Problem | 00:24 |
153 | Previous State _ solution | 01:07 |
154 | State Object _ Problem | 01:07 |
155 | State Object _ solution | 03:22 |
156 | Action Function _ Problem | 01:44 |
157 | Action Function _ solution | 04:16 |
158 | Traditional Reducer _ Problem | 01:03 |
159 | Traditional Reducer _ solution | 04:08 |
160 | Real World _Problem | 01:51 |
161 | Real World _ solution | 07:01 |
162 | Dad Joke Break Advanced State Management | 00:34 |
163 | Intro to State Optimization | 01:23 |
164 | Optimize state updates _ Problem | 01:38 |
165 | Optimize state updates _solution | 03:40 |
166 | Dad Joke Break State Optimization | 00:33 |
167 | Intro to Custom Hooks | 10:09 |
168 | Hook Function _Problem | 00:36 |
169 | Hook Function _ solution | 02:19 |
170 | useCallback _ Problem | 01:18 |
171 | useCallback _ solution | 02:19 |
172 | Dad Joke Break Custom Hooks | 00:30 |
173 | Intro to Shared Context | 04:56 |
174 | Context Provider _ Problem | 00:47 |
175 | Context Provider _ solution | 03:03 |
176 | Context Hook _ Problem | 00:43 |
177 | Context Hook _ solution | 02:29 |
178 | Dad Joke Break Shared Context | 00:37 |
179 | Intro to Portals | 01:56 |
180 | createPortal _ Problem | 01:00 |
181 | createPortal _ solution | 01:18 |
182 | Dad Joke Break Portals | 00:29 |
183 | Intro to Layout Computation | 03:18 |
184 | useLayoutEffect _Problem | 01:19 |
185 | useLayoutEffect _solution | 01:44 |
186 | Dad Joke Break Layout Computation | 00:29 |
187 | Intro to Imperative Handles | 02:43 |
188 | useImperativeHandle _Problem | 01:12 |
189 | useImperativeHandle _ solution | 02:47 |
190 | Dad Joke Break Imperative Handles | 00:24 |
191 | Intro to Focus Management | 03:02 |
192 | flushSync _Problem | 01:24 |
193 | flushSync _solution | 03:11 |
194 | Dad Joke Break Focus Management | 00:42 |
195 | Intro to Sync External State | 03:56 |
196 | useSyncExternalStore _Problem | 00:49 |
197 | useSyncExternalStore _solution | 02:05 |
198 | Make Store Utility _Problem | 00:36 |
199 | Make Store Utility _solution | 01:20 |
200 | Handling Server Rendering _Problem | 02:27 |
201 | Handling Server Rendering _solution | 03:36 |
202 | Dad Joke Break Sync External State | 00:34 |
203 | Outro to Advanced React APIs | 01:31 |
204 | Intro to Data fetching | 07:46 |
205 | Throwing Promises _Problem | 00:58 |
206 | Throwing Promises _Solution | 04:05 |
207 | Error Handling _Problem | 00:47 |
208 | Error Handling _ Solution | 03:04 |
209 | Formal Status _Problem | 00:41 |
210 | Formal Status _Solution | 01:11 |
211 | Utility _ Problem | 01:25 |
212 | Utility _Solution | 03:40 |
213 | use React _Problem | 00:10 |
214 | use React _Solution | 00:39 |
215 | Dad Joke Break Data fetching | 00:33 |
216 | Intro to Dynamic Promises | 04:37 |
217 | Promise Cache _Problem | 01:43 |
218 | Promise Cache _Solution | 04:11 |
219 | useTransition _Problem | 01:57 |
220 | useTransition _Solution | 02:05 |
221 | Pending Flash _Problem | 03:17 |
222 | Pending Flash _Solution | 01:55 |
223 | Dad Joke Break Dynamic Promises | 00:37 |
224 | Intro to Optimistic UI | 06:12 |
225 | Optimistic UI _Problem | 01:34 |
226 | Optimistic UI _Solution | 05:15 |
227 | Form Status _ Problem | 01:13 |
228 | Form Status _Solution | 03:04 |
229 | Multi-step Actions _Problem | 00:59 |
230 | Multi-step Actions _ Solution | 03:05 |
231 | Dad Joke Break Optimistic UI | 00:26 |
232 | Intro to Suspense img | 02:43 |
233 | Img Component _Problem | 01:02 |
234 | Img Component _ Solution | 03:34 |
235 | Img Error Boundary _Problem | 01:48 |
236 | Img Error Boundary _Solution | 01:35 |
237 | Key prop _Problem | 04:41 |
238 | Key prop _Solution | 02:01 |
239 | Dad Joke Break Suspense img | 00:44 |
240 | Intro to Responsive | 03:03 |
241 | useDeferredValue _Problem | 01:16 |
242 | useDeferredValue _Solution | 03:01 |
243 | Dad Joke Break Responsive | 00:27 |
244 | Intro to Optimizations | 05:49 |
245 | Parallel Loading _Problem | 00:54 |
246 | Parallel Loading _Solution | 01:56 |
247 | Server Cache _Problem | 01:45 |
248 | Server Cache _Solution | 01:44 |
249 | Dad Joke Break Optimizations | 00:31 |
250 | Outro to React Suspense | 01:19 |
251 | Advanced React Patterns Intro | 03:23 |
252 | Intro to Composition | 04:48 |
253 | Composition and Layout Components _ Problem | 00:55 |
254 | Composition and Layout Components _Solution | 07:52 |
255 | Dad Joke Break Composition | 00:34 |
256 | Intro to Latest Ref | 10:48 |
257 | Latest Ref _ Problem | 05:10 |
258 | Latest Ref _Solution | 08:07 |
259 | Dad Joke Break Latest Ref | 00:34 |
260 | Intro to Compound Components | 03:32 |
261 | Compound Components _ Problem | 01:14 |
262 | Compound Components _ Solution | 03:19 |
263 | Compound Components Validation _ Problem | 01:19 |
264 | Compound Components Validation _Solution | 02:39 |
265 | Dad Joke Break Compound Components | 00:34 |
266 | Intro to Slots | 05:11 |
267 | Slot Context _Problem | 01:23 |
268 | Slot Context _ Solution | 06:08 |
269 | Generic Slot Components _ Problem | 00:59 |
270 | Generic Slot Components _ Solution | 02:41 |
271 | Slot Prop _Problem | 01:41 |
272 | Slot Prop _ Solution | 10:49 |
273 | Dad Joke Break Slots | 00:21 |
274 | Intro to Prop Collections and Getters | 02:30 |
275 | Prop Collections _Problem | 01:10 |
276 | Prop Collections _Solution | 00:58 |
277 | Prop Getters _Problem | 03:34 |
278 | Prop Getters _Solution | 05:32 |
279 | Dad Joke Break Prop Collections and Getters | 00:30 |
280 | Intro to State Initializer | 01:55 |
281 | Initialize Toggle _Problem | 00:20 |
282 | Initialize Toggle _Solution | 04:38 |
283 | Stability _Problem | 01:23 |
284 | Stability _Solution | 01:20 |
285 | Dad Joke Break State Initializer | 00:37 |
286 | Intro to State Reducer | 03:05 |
287 | State Reducer _Problem | 00:46 |
288 | State Reducer _Solution | 02:20 |
289 | Default State Reducer _Problem | 00:42 |
290 | Default State Reducer _Solution | 01:51 |
291 | Dad Joke Break State Reducer | 00:32 |
292 | Intro to Control Props | 05:17 |
293 | Control Props _Problem | 03:25 |
294 | Control Props _Solution | 06:03 |
295 | Dad Joke Break Control Props | 00:47 |
296 | Outro to Advanced React Patterns | 01:25 |
297 | React Performance Intro | 04:40 |
298 | Intro to Element Optimization | 03:45 |
299 | Reusing Elements _Problem | 01:53 |
300 | Reusing Elements _Solution | 01:15 |
301 | Element Props _Problem | 00:41 |
302 | Element Props _ Solution | 02:31 |
303 | Context _ Problem | 01:49 |
304 | Context _Solution | 04:12 |
305 | Memoize Elements _Problem | 02:06 |
306 | Memoize Elements _Solution | 01:29 |
307 | Memoize Components _ Problem | 01:06 |
308 | Memoize Components _Solution | 05:39 |
309 | Dad Joke Break Element Optimization | 00:31 |
310 | Intro to Optimize Context | 01:58 |
311 | Memoize Context _Problem | 01:20 |
312 | Memoize Context _Solution | 01:01 |
313 | Provider Component _Problem | 00:53 |
314 | Provider Component _Solution | 03:55 |
315 | Split Context _Problem | 01:58 |
316 | Split Context _Solution | 05:29 |
317 | Dad Joke Break Optimize Context | 00:52 |
318 | Concurrent Rendering Intro | 14:20 |
319 | useDeferredValue + memo _Problem | 02:40 |
320 | useDeferredValue + memo _Solution | 05:26 |
321 | Dad Joke Break Concurrent Rendering | 01:04 |
322 | Intro to Code Splitting | 04:34 |
323 | lazy _ Problem | 03:11 |
324 | lazy _Solution | 04:40 |
325 | Eager Loading _Problem | 01:28 |
326 | Eager Loading _Solution | 01:13 |
327 | Transitions _Problem | 01:20 |
328 | Transitions _ Solution | 03:59 |
329 | Dad Joke Break Code Splitting | 00:19 |
330 | Intro to Expensive Calculations | 05:05 |
331 | useMemo _Problem | 01:57 |
332 | useMemo _Solution | 03:08 |
333 | Web Worker _Problem | 04:25 |
334 | Web Worker _Solution | 05:13 |
335 | Async Results _Problem | 02:11 |
336 | Async Results _Solution | 07:51 |
337 | Dad Joke Break Expensive Calculations | 00:31 |
338 | Intro to Optimize Rendering | 05:59 |
339 | Component Memoization _ Problem | 01:24 |
340 | Component Memoization _Solution | 01:38 |
341 | Custom Comparator _ Problem | 02:01 |
342 | Custom Comparator _Solution | 05:30 |
343 | Primitives _Problem | 01:50 |
344 | Primitives _Solution | 01:41 |
345 | Dad Joke Break Optimize Rendering | 00:19 |
346 | Intro to Windowing | 05:55 |
347 | Virtualizer _Problem | 01:33 |
348 | Virtualizer _Solution | 08:14 |
349 | Dad Joke Break Windowing | 00:30 |
350 | Outro to React Performance | 03:05 |
351 | React Server Components Intro | 05:22 |
352 | Intro to Warm Up | 03:02 |
353 | Static React App _Problem | 02:15 |
354 | Static React App _Solution | 04:45 |
355 | Dad Joke Break Warm Up | 00:27 |
356 | Intro to Server Components | 10:36 |
357 | RSCs _Problem | 04:06 |
358 | Async Components _ Problem | 00:43 |
359 | Async Components _Solution | 02:01 |
360 | Streaming _Problem | 02:01 |
361 | Streaming _ Solution | 03:45 |
362 | Server Context _Problem | 03:55 |
363 | Server Context _Solution | 03:12 |
364 | Dad Joke Break Server Components | 00:28 |
365 | Intro to Client Components | 14:20 |
366 | Node.js Loader _Problem | 01:46 |
367 | Node.js Loader _Solution | 04:25 |
368 | Module Resolution _Problem | 01:25 |
369 | Module Resolution _Solution | 03:00 |
370 | Dad Joke Break Client Components | 00:37 |
371 | Intro to Client Router | 02:30 |
372 | Client Router _Problem | 03:02 |
373 | Client Router _Solution | 11:55 |
374 | Pending UI _Problem | 03:20 |
375 | Pending UI _Solution | 07:59 |
376 | Race Conditions _Problem | 01:53 |
377 | Race Conditions _Solution | 02:46 |
378 | History _Problem | 01:27 |
379 | History _Solution | 02:36 |
380 | Cache _Problem | 04:50 |
381 | Cache _Solution | 07:41 |
382 | Dad Joke Break Client Router | 00:50 |
383 | Intro to Server Actions | 05:00 |
384 | Action Reference _ Problem | 01:16 |
385 | Action Reference _Solution | 09:26 |
386 | Client Side _Problem | 02:05 |
387 | Client Side _ Solution | 03:13 |
388 | Server Side _Problem | 01:21 |
389 | Server Side _Solution | 08:12 |
390 | Revalidation _Problem | 06:12 |
391 | Revalidation _Solution | 04:15 |
392 | History Revalidation _ Problem | 01:14 |
393 | History Revalidation _Solution | 02:31 |
394 | Dad Joke Break Server Actions | 00:34 |
395 | Outro to React Server Components | 02:19 |
396 | Getting into Open Source with Aakansha Doshi | 36:21 |
397 | Enhancing Forms using React 19 with Aurora Scharff | 31:03 |
398 | Jenna Smith on AI, Building Radix, and Tokenami | 41:46 |
399 | Evan Bacon brings React Server Components to React Native | 38:15 |
400 | Kateryna Porshnieva on Building Accessible Apps with React 19 | 31:57 |
401 | React's Evolution: Past, Present, and Future with Lee Robinson | 31:22 |
402 | Matt Brophy on Remix, React Router, and Open-Source | 37:14 |
403 | Michelle Beckles on Community Building and Developer Health | 33:22 |
404 | Under the Hood of React 19 with Rick Hanlon | 38:03 |
405 | Sam Selikoff on React's Impact in Modern Web Development | 34:04 |
406 | Lydia Hallie on JavaScript, React, and the Future of Web Development | 31:32 |
407 | Sebastian Silbermann on Testing, Tooling, and Transitions With React 19 | 36:24 |
408 | The Importance of Accessibility in Modern Web Development With Shruti Kapoor | 28:16 |
409 | Sunil Pai on Changing Lives with Powerful Software, PartyKit, and Durable Objects | 44:53 |
410 | Theo Browne on His Personal Experience as a Web Developer | 47:48 |
411 | Dominik Dorfmeister on His Open-Source Journey | 35:39 |