Skip to content

Get the full experience in the app More learning modes, track your progress, detailed topics

Start Now

React.js Complete Guide

Master React.js from fundamentals to advanced patterns. Build modern web applications with components, hooks, state management, and best practices.

Intermediate
19 modules
600 min
4.7

Overview

Master React.js from fundamentals to advanced patterns. Build modern web applications with components, hooks, state management, and best practices.

What you'll learn

  • Build React applications from scratch
  • Understand and use React hooks effectively
  • Manage complex application state
  • Implement routing and navigation
  • Apply React best practices and patterns

Course Modules

19 modules
1

Introduction to React

What is React, why use it, and setting up your first project.

Key Concepts
React Component Virtual DOM JSX Vite

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain React
  • Define and explain Component
  • Define and explain Virtual DOM
  • Define and explain JSX
  • Define and explain Vite
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

React is a JavaScript library for building user interfaces, created by Facebook in 2013. It revolutionized web development with its component-based architecture and virtual DOM. React lets you build complex UIs from small, reusable pieces called components. Today, React powers millions of websites including Facebook, Instagram, Netflix, and Airbnb. Its ecosystem includes React Native for mobile apps. Start a new project with Create React App or Vite: npm create vite@latest my-app -- --template react. Understanding React opens doors to modern frontend development.

In this module, we will explore the fascinating world of Introduction to React. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


React

What is React?

Definition: JavaScript library for building user interfaces

When experts study react, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding react helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: React is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Component

What is Component?

Definition: Reusable piece of UI with its own logic and appearance

The concept of component has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about component, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about component every day.

Key Point: Component is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Virtual DOM

What is Virtual DOM?

Definition: In-memory representation of the real DOM for efficient updates

To fully appreciate virtual dom, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of virtual dom in different contexts around you.

Key Point: Virtual DOM is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


JSX

What is JSX?

Definition: Syntax extension allowing HTML-like code in JavaScript

Understanding jsx helps us make sense of many processes that affect our daily lives. Experts use their knowledge of jsx to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: JSX is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Vite

What is Vite?

Definition: Fast build tool for modern web projects

The study of vite reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Vite is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: React vs Other Frameworks

React differs from Angular and Vue in important ways. React is a library, not a full framework—it focuses on the view layer and lets you choose other tools. React uses JSX, a syntax extension that looks like HTML in JavaScript. Its virtual DOM efficiently updates only what changes. React's one-way data flow makes applications predictable. The large community means extensive resources and third-party libraries. Companies choose React for its flexibility, performance, and the ability to hire from a large developer pool.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? React was first deployed on Facebook's News Feed in 2011, two years before being open-sourced. Instagram was rebuilt using React just before Facebook acquired it!


Key Concepts at a Glance

Concept Definition
React JavaScript library for building user interfaces
Component Reusable piece of UI with its own logic and appearance
Virtual DOM In-memory representation of the real DOM for efficient updates
JSX Syntax extension allowing HTML-like code in JavaScript
Vite Fast build tool for modern web projects

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what React means and give an example of why it is important.

  2. In your own words, explain what Component means and give an example of why it is important.

  3. In your own words, explain what Virtual DOM means and give an example of why it is important.

  4. In your own words, explain what JSX means and give an example of why it is important.

  5. In your own words, explain what Vite means and give an example of why it is important.

Summary

In this module, we explored Introduction to React. We learned about react, component, virtual dom, jsx, vite. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

2

JSX and Rendering

Writing JSX and understanding how React renders elements.

Key Concepts
JSX Curly Braces Fragment Conditional Rendering Key Prop

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain JSX
  • Define and explain Curly Braces
  • Define and explain Fragment
  • Define and explain Conditional Rendering
  • Define and explain Key Prop
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

JSX is a syntax extension that lets you write HTML-like code in JavaScript. Under the hood, JSX compiles to React.createElement() calls. JSX looks like HTML but has key differences: use className instead of class, use camelCase for attributes (onClick, tabIndex), and self-close all tags. Embed JavaScript expressions in curly braces: {variable}. Conditional rendering uses ternary operators or && for simple cases. React renders JSX to the DOM through ReactDOM.createRoot(). Understanding JSX is fundamental to writing React code.

In this module, we will explore the fascinating world of JSX and Rendering. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


JSX

What is JSX?

Definition: JavaScript XML syntax for writing UI elements

When experts study jsx, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding jsx helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: JSX is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Curly Braces

What is Curly Braces?

Definition: Syntax for embedding JavaScript expressions in JSX

The concept of curly braces has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about curly braces, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about curly braces every day.

Key Point: Curly Braces is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Fragment

What is Fragment?

Definition: Empty wrapper <></> to group elements without adding DOM nodes

To fully appreciate fragment, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of fragment in different contexts around you.

Key Point: Fragment is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Conditional Rendering

What is Conditional Rendering?

Definition: Showing different UI based on conditions

Understanding conditional rendering helps us make sense of many processes that affect our daily lives. Experts use their knowledge of conditional rendering to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Conditional Rendering is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Key Prop

What is Key Prop?

Definition: Unique identifier for list items to help React track changes

The study of key prop reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Key Prop is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: JSX Best Practices

Write cleaner JSX with these practices: keep components small and focused, use fragments <></> to avoid extra divs, extract complex logic into variables before the return statement. For conditional rendering, prefer {condition && } for simple cases and ternary for either/or. Map arrays with .map() and always include unique keys. Spread props with {...props} for forwarding. Avoid inline functions in JSX when possible for performance. Well-structured JSX improves readability and maintainability.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? JSX was controversial when React launched—many developers hated mixing HTML with JavaScript. Now it's beloved and inspired similar syntax in other frameworks!


Key Concepts at a Glance

Concept Definition
JSX JavaScript XML syntax for writing UI elements
Curly Braces Syntax for embedding JavaScript expressions in JSX
Fragment Empty wrapper <></> to group elements without adding DOM nodes
Conditional Rendering Showing different UI based on conditions
Key Prop Unique identifier for list items to help React track changes

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what JSX means and give an example of why it is important.

  2. In your own words, explain what Curly Braces means and give an example of why it is important.

  3. In your own words, explain what Fragment means and give an example of why it is important.

  4. In your own words, explain what Conditional Rendering means and give an example of why it is important.

  5. In your own words, explain what Key Prop means and give an example of why it is important.

Summary

In this module, we explored JSX and Rendering. We learned about jsx, curly braces, fragment, conditional rendering, key prop. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

3

Components and Props

Building reusable components and passing data with props.

Key Concepts
Function Component Props children Prop Destructuring One-Way Data Flow

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Function Component
  • Define and explain Props
  • Define and explain children Prop
  • Define and explain Destructuring
  • Define and explain One-Way Data Flow
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Components are the building blocks of React applications. Function components are JavaScript functions that return JSX: function Button() { return ; }. Props (properties) pass data from parent to child components: ; }. Props are read-only—components should never modify their own props. This one-way data flow makes React applications predictable and easier to debug.

In this module, we will explore the fascinating world of Components and Props. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Function Component

What is Function Component?

Definition: Component defined as a JavaScript function returning JSX

When experts study function component, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding function component helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Function Component is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Props

What is Props?

Definition: Read-only data passed from parent to child component

The concept of props has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about props, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about props every day.

Key Point: Props is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


children Prop

What is children Prop?

Definition: Special prop containing nested elements

To fully appreciate children prop, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of children prop in different contexts around you.

Key Point: children Prop is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Destructuring

What is Destructuring?

Definition: Extracting props directly in function parameters

Understanding destructuring helps us make sense of many processes that affect our daily lives. Experts use their knowledge of destructuring to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Destructuring is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


One-Way Data Flow

What is One-Way Data Flow?

Definition: Data flows from parent to child, never reverse

The study of one-way data flow reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: One-Way Data Flow is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Component Patterns

Common component patterns improve code organization. Container components handle logic and state; presentational components focus on UI. Compound components work together like ; inputRef.current.focus(). Also stores any mutable value: previous state, timers, or any value you need to persist without triggering re-render. Unlike state, changing ref.current doesn't cause re-render. Refs are the escape hatch when you need direct DOM manipulation or values outside React's rendering cycle.

In this module, we will explore the fascinating world of useRef and DOM Access. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


useRef

What is useRef?

Definition: Hook that creates a mutable reference persisting across renders

When experts study useref, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding useref helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: useRef is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


ref.current

What is ref.current?

Definition: Property holding the current value or DOM element

The concept of ref.current has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about ref.current, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about ref.current every day.

Key Point: ref.current is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


forwardRef

What is forwardRef?

Definition: Function to pass refs to child components

To fully appreciate forwardref, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of forwardref in different contexts around you.

Key Point: forwardRef is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


DOM Manipulation

What is DOM Manipulation?

Definition: Directly accessing and modifying DOM elements

Understanding dom manipulation helps us make sense of many processes that affect our daily lives. Experts use their knowledge of dom manipulation to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: DOM Manipulation is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useImperativeHandle

What is useImperativeHandle?

Definition: Hook to customize ref value exposed to parent

The study of useimperativehandle reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: useImperativeHandle is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: forwardRef for Component Refs

To pass refs to child components, use forwardRef: const Input = forwardRef((props, ref) => <input ref={ref} {...props} />). This lets parent components access the child's DOM element. useImperativeHandle customizes what's exposed: useImperativeHandle(ref, () => ({ focus: () => inputRef.current.focus() })). This is useful for component libraries where you want to expose specific methods. However, prefer declarative React patterns over imperative ref manipulation when possible.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? Refs are commonly used to integrate with non-React libraries that need direct DOM access, like D3.js for data visualization or Three.js for 3D graphics!


Key Concepts at a Glance

Concept Definition
useRef Hook that creates a mutable reference persisting across renders
ref.current Property holding the current value or DOM element
forwardRef Function to pass refs to child components
DOM Manipulation Directly accessing and modifying DOM elements
useImperativeHandle Hook to customize ref value exposed to parent

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what useRef means and give an example of why it is important.

  2. In your own words, explain what ref.current means and give an example of why it is important.

  3. In your own words, explain what forwardRef means and give an example of why it is important.

  4. In your own words, explain what DOM Manipulation means and give an example of why it is important.

  5. In your own words, explain what useImperativeHandle means and give an example of why it is important.

Summary

In this module, we explored useRef and DOM Access. We learned about useref, ref.current, forwardref, dom manipulation, useimperativehandle. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

8

Context API for State Sharing

Sharing state across components without prop drilling.

Key Concepts
Context createContext Provider useContext Prop Drilling

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Context
  • Define and explain createContext
  • Define and explain Provider
  • Define and explain useContext
  • Define and explain Prop Drilling
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Context solves "prop drilling"—passing props through many component levels. Create context: const ThemeContext = createContext('light'). Provide value: <ThemeContext.Provider value={theme}>. Consume with useContext: const theme = useContext(ThemeContext). Context is ideal for global data: theme, locale, user authentication. However, context re-renders all consumers when value changes—use it wisely. For complex state, combine with useReducer or consider state management libraries. Context is powerful but should complement, not replace, props for most data passing.

In this module, we will explore the fascinating world of Context API for State Sharing. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Context

What is Context?

Definition: Way to pass data through component tree without props

When experts study context, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding context helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Context is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


createContext

What is createContext?

Definition: Function to create a new context object

The concept of createcontext has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about createcontext, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about createcontext every day.

Key Point: createContext is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Provider

What is Provider?

Definition: Component that supplies context value to descendants

To fully appreciate provider, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of provider in different contexts around you.

Key Point: Provider is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useContext

What is useContext?

Definition: Hook to consume context value

Understanding usecontext helps us make sense of many processes that affect our daily lives. Experts use their knowledge of usecontext to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: useContext is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Prop Drilling

What is Prop Drilling?

Definition: Passing props through many levels unnecessarily

The study of prop drilling reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Prop Drilling is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Context Patterns

Optimize context usage with these patterns: Split contexts by update frequency—theme rarely changes, user data more often. Memoize provider values: value={useMemo(() => ({state, dispatch}), [state])}. Create custom hooks: function useTheme() { return useContext(ThemeContext); }. Colocate provider near consumers to limit re-renders. For actions, pass dispatch separately or use a context that holds functions. Consider libraries like Zustand or Jotai for complex state with better performance than raw context.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? Context existed in React before hooks! The old API used render props: <ThemeContext.Consumer>{theme =>

{theme}
}</ThemeContext.Consumer>—hooks made it much cleaner.


Key Concepts at a Glance

Concept Definition
Context Way to pass data through component tree without props
createContext Function to create a new context object
Provider Component that supplies context value to descendants
useContext Hook to consume context value
Prop Drilling Passing props through many levels unnecessarily

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what Context means and give an example of why it is important.

  2. In your own words, explain what createContext means and give an example of why it is important.

  3. In your own words, explain what Provider means and give an example of why it is important.

  4. In your own words, explain what useContext means and give an example of why it is important.

  5. In your own words, explain what Prop Drilling means and give an example of why it is important.

Summary

In this module, we explored Context API for State Sharing. We learned about context, createcontext, provider, usecontext, prop drilling. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

9

useReducer for Complex State

Managing complex state logic with reducers.

Key Concepts
useReducer Reducer dispatch Action Payload

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain useReducer
  • Define and explain Reducer
  • Define and explain dispatch
  • Define and explain Action
  • Define and explain Payload
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

useReducer is an alternative to useState for complex state logic. It uses the reducer pattern: const [state, dispatch] = useReducer(reducer, initialState). The reducer function takes state and action, returns new state: function reducer(state, action) { switch(action.type) { case 'INCREMENT': return {...state, count: state.count + 1}; } }. Dispatch actions to update: dispatch({type: 'INCREMENT'}). useReducer is preferable when state logic is complex, updates depend on previous state, or actions have multiple effects.

In this module, we will explore the fascinating world of useReducer for Complex State. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


useReducer

What is useReducer?

Definition: Hook for managing complex state with a reducer

When experts study usereducer, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding usereducer helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: useReducer is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Reducer

What is Reducer?

Definition: Pure function that takes state and action, returns new state

The concept of reducer has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about reducer, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about reducer every day.

Key Point: Reducer is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


dispatch

What is dispatch?

Definition: Function to send actions to the reducer

To fully appreciate dispatch, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of dispatch in different contexts around you.

Key Point: dispatch is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Action

What is Action?

Definition: Object describing what happened, typically with type property

Understanding action helps us make sense of many processes that affect our daily lives. Experts use their knowledge of action to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Action is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Payload

What is Payload?

Definition: Data carried by an action

The study of payload reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Payload is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Reducer Best Practices

Write effective reducers with these practices: Keep reducers pure—no side effects, same input always produces same output. Use action types as constants to prevent typos. Include payload in actions for data: {type: 'SET_USER', payload: user}. Handle unknown actions with default case returning current state. Use Immer library to write "mutating" code that produces immutable updates. Combine useReducer with Context for app-wide state. TypeScript enhances reducers with typed actions and state.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? useReducer is inspired by Redux, the most popular state management library. Redux creator Dan Abramov actually joined the React team and helped design hooks!


Key Concepts at a Glance

Concept Definition
useReducer Hook for managing complex state with a reducer
Reducer Pure function that takes state and action, returns new state
dispatch Function to send actions to the reducer
Action Object describing what happened, typically with type property
Payload Data carried by an action

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what useReducer means and give an example of why it is important.

  2. In your own words, explain what Reducer means and give an example of why it is important.

  3. In your own words, explain what dispatch means and give an example of why it is important.

  4. In your own words, explain what Action means and give an example of why it is important.

  5. In your own words, explain what Payload means and give an example of why it is important.

Summary

In this module, we explored useReducer for Complex State. We learned about usereducer, reducer, dispatch, action, payload. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

10

Custom Hooks

Creating reusable hook logic.

Key Concepts
Custom Hook Logic Extraction useDebounce useFetch Composition

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Custom Hook
  • Define and explain Logic Extraction
  • Define and explain useDebounce
  • Define and explain useFetch
  • Define and explain Composition
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Custom hooks let you extract and reuse stateful logic. A custom hook is a function starting with "use" that calls other hooks. Example: function useLocalStorage(key, initialValue) { const [value, setValue] = useState(() => localStorage.getItem(key) || initialValue); useEffect(() => { localStorage.setItem(key, value); }, [key, value]); return [value, setValue]; }. Custom hooks share logic, not state—each component using the hook gets its own state. This pattern is fundamental to clean, reusable React code.

In this module, we will explore the fascinating world of Custom Hooks. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Custom Hook

What is Custom Hook?

Definition: Reusable function that encapsulates hook logic

When experts study custom hook, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding custom hook helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Custom Hook is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Logic Extraction

What is Logic Extraction?

Definition: Moving stateful logic out of components into hooks

The concept of logic extraction has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about logic extraction, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about logic extraction every day.

Key Point: Logic Extraction is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useDebounce

What is useDebounce?

Definition: Hook that delays updating a value

To fully appreciate usedebounce, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of usedebounce in different contexts around you.

Key Point: useDebounce is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useFetch

What is useFetch?

Definition: Hook for data fetching with states

Understanding usefetch helps us make sense of many processes that affect our daily lives. Experts use their knowledge of usefetch to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: useFetch is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Composition

What is Composition?

Definition: Building complex hooks from simpler ones

The study of composition reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Composition is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Popular Custom Hook Patterns

Common custom hooks include: useDebounce for debouncing values, useFetch for data fetching with loading/error states, useOnClickOutside for detecting clicks outside elements, useMediaQuery for responsive design, usePrevious for tracking previous values, and useToggle for boolean state. Libraries like react-use and ahooks provide many ready-to-use hooks. When creating hooks, return arrays for simple values (like useState) and objects for multiple values. Document your hooks well for team reuse.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? The "use" prefix isn't just convention—React uses it to check rules of hooks at development time. If you name a function "useXxx", React knows it should follow hook rules!


Key Concepts at a Glance

Concept Definition
Custom Hook Reusable function that encapsulates hook logic
Logic Extraction Moving stateful logic out of components into hooks
useDebounce Hook that delays updating a value
useFetch Hook for data fetching with states
Composition Building complex hooks from simpler ones

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what Custom Hook means and give an example of why it is important.

  2. In your own words, explain what Logic Extraction means and give an example of why it is important.

  3. In your own words, explain what useDebounce means and give an example of why it is important.

  4. In your own words, explain what useFetch means and give an example of why it is important.

  5. In your own words, explain what Composition means and give an example of why it is important.

Summary

In this module, we explored Custom Hooks. We learned about custom hook, logic extraction, usedebounce, usefetch, composition. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

11

React Router for Navigation

Client-side routing for single-page applications.

Key Concepts
React Router Route Link useParams useNavigate

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain React Router
  • Define and explain Route
  • Define and explain Link
  • Define and explain useParams
  • Define and explain useNavigate
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

React Router enables navigation in single-page applications without full page reloads. Install: npm install react-router-dom. Wrap your app with BrowserRouter. Define routes with Routes and Route components: <Route path="/" element={} /><Route path="/about" element={} />. Navigate with Link: About. Access route params with useParams: const { id } = useParams(). useNavigate provides programmatic navigation. React Router v6 is the current version with simplified API.

In this module, we will explore the fascinating world of React Router for Navigation. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


React Router

What is React Router?

Definition: Library for client-side routing in React

When experts study react router, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding react router helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: React Router is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Route

What is Route?

Definition: Component mapping URL path to element

The concept of route has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about route, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about route every day.

Key Point: Route is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Link

What is Link?

Definition: Component for navigation without page reload

To fully appreciate link, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of link in different contexts around you.

Key Point: Link is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useParams

What is useParams?

Definition: Hook to access URL parameters

Understanding useparams helps us make sense of many processes that affect our daily lives. Experts use their knowledge of useparams to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: useParams is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useNavigate

What is useNavigate?

Definition: Hook for programmatic navigation

The study of usenavigate reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: useNavigate is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Advanced Routing

Advanced routing features include: Nested routes for layouts: <Route path="dashboard" element={}><Route path="settings" element={} />. Protected routes check authentication. Dynamic routes: <Route path="users/:id" element={} />. useSearchParams handles query parameters. Outlet renders nested route content. useLocation accesses current URL. Lazy loading routes with React.lazy improves initial load. Navigate component redirects. These patterns create professional navigation experiences.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? React Router was one of the first major React libraries, created in 2014. It has been completely rewritten several times—v6 looks very different from v3!


Key Concepts at a Glance

Concept Definition
React Router Library for client-side routing in React
Route Component mapping URL path to element
Link Component for navigation without page reload
useParams Hook to access URL parameters
useNavigate Hook for programmatic navigation

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what React Router means and give an example of why it is important.

  2. In your own words, explain what Route means and give an example of why it is important.

  3. In your own words, explain what Link means and give an example of why it is important.

  4. In your own words, explain what useParams means and give an example of why it is important.

  5. In your own words, explain what useNavigate means and give an example of why it is important.

Summary

In this module, we explored React Router for Navigation. We learned about react router, route, link, useparams, usenavigate. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

12

Data Fetching Patterns

Fetching and managing server data effectively.

Key Concepts
Data Fetching TanStack Query useQuery Caching Optimistic Update

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Data Fetching
  • Define and explain TanStack Query
  • Define and explain useQuery
  • Define and explain Caching
  • Define and explain Optimistic Update
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Fetching data is essential for most React applications. Basic pattern: useEffect with fetch or axios. Handle loading and error states: const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null). For production, use data fetching libraries like TanStack Query (React Query) or SWR. They handle caching, refetching, and synchronization automatically. Modern React recommends using these libraries over manual useEffect fetching for better performance and developer experience.

In this module, we will explore the fascinating world of Data Fetching Patterns. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Data Fetching

What is Data Fetching?

Definition: Getting data from servers/APIs

When experts study data fetching, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding data fetching helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Data Fetching is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


TanStack Query

What is TanStack Query?

Definition: Library for server state management

The concept of tanstack query has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about tanstack query, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about tanstack query every day.

Key Point: TanStack Query is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useQuery

What is useQuery?

Definition: Hook for fetching and caching data

To fully appreciate usequery, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of usequery in different contexts around you.

Key Point: useQuery is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Caching

What is Caching?

Definition: Storing fetched data to avoid refetching

Understanding caching helps us make sense of many processes that affect our daily lives. Experts use their knowledge of caching to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Caching is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Optimistic Update

What is Optimistic Update?

Definition: Updating UI before server confirms change

The study of optimistic update reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Optimistic Update is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: TanStack Query (React Query)

TanStack Query simplifies server state management: const { data, isLoading, error } = useQuery({ queryKey: ['todos'], queryFn: fetchTodos }). It provides automatic caching, background refetching, stale-while-revalidate, pagination, and optimistic updates. Mutations handle POST/PUT/DELETE: const mutation = useMutation({ mutationFn: createTodo }). Queries can depend on other data. DevTools help debug. The library treats server state differently from client state, a key insight for modern React applications.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? React Query was renamed to TanStack Query because it now supports Vue, Solid, and Svelte too! The creator, Tanner Linsley, built an entire "TanStack" of popular libraries.


Key Concepts at a Glance

Concept Definition
Data Fetching Getting data from servers/APIs
TanStack Query Library for server state management
useQuery Hook for fetching and caching data
Caching Storing fetched data to avoid refetching
Optimistic Update Updating UI before server confirms change

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what Data Fetching means and give an example of why it is important.

  2. In your own words, explain what TanStack Query means and give an example of why it is important.

  3. In your own words, explain what useQuery means and give an example of why it is important.

  4. In your own words, explain what Caching means and give an example of why it is important.

  5. In your own words, explain what Optimistic Update means and give an example of why it is important.

Summary

In this module, we explored Data Fetching Patterns. We learned about data fetching, tanstack query, usequery, caching, optimistic update. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

13

Performance Optimization

Making React applications fast and efficient.

Key Concepts
useMemo useCallback React.memo Code Splitting Virtualization

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain useMemo
  • Define and explain useCallback
  • Define and explain React.memo
  • Define and explain Code Splitting
  • Define and explain Virtualization
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

React is fast by default, but optimization matters for complex apps. useMemo memoizes expensive calculations: const sorted = useMemo(() => sortItems(items), [items]). useCallback memoizes functions: const handleClick = useCallback(() => {}, [deps]). React.memo prevents re-renders when props haven't changed. Code-splitting with React.lazy loads components on demand. Virtualization renders only visible list items. Profile with React DevTools to find bottlenecks. Optimize when you have measured problems, not prematurely.

In this module, we will explore the fascinating world of Performance Optimization. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


useMemo

What is useMemo?

Definition: Hook that memoizes calculation results

When experts study usememo, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding usememo helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: useMemo is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


useCallback

What is useCallback?

Definition: Hook that memoizes function references

The concept of usecallback has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about usecallback, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about usecallback every day.

Key Point: useCallback is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


React.memo

What is React.memo?

Definition: HOC that prevents re-renders on same props

To fully appreciate react.memo, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of react.memo in different contexts around you.

Key Point: React.memo is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Code Splitting

What is Code Splitting?

Definition: Loading code on demand to reduce initial bundle

Understanding code splitting helps us make sense of many processes that affect our daily lives. Experts use their knowledge of code splitting to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Code Splitting is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Virtualization

What is Virtualization?

Definition: Rendering only visible items in long lists

The study of virtualization reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Virtualization is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Memoization Strategies

Use memoization strategically: React.memo for components receiving same props repeatedly. useMemo for expensive computations or complex object creation. useCallback when passing callbacks to memoized children. However, memoization has costs—memory usage and comparison overhead. Don't memoize everything—measure first with React DevTools Profiler. Common patterns: memoize list item components, memoize context values, and split components to isolate re-renders. The new React Compiler (React Forget) will automate much of this.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? The React team is building "React Forget"—a compiler that will automatically add memoization where needed, potentially making useMemo and useCallback less necessary!


Key Concepts at a Glance

Concept Definition
useMemo Hook that memoizes calculation results
useCallback Hook that memoizes function references
React.memo HOC that prevents re-renders on same props
Code Splitting Loading code on demand to reduce initial bundle
Virtualization Rendering only visible items in long lists

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what useMemo means and give an example of why it is important.

  2. In your own words, explain what useCallback means and give an example of why it is important.

  3. In your own words, explain what React.memo means and give an example of why it is important.

  4. In your own words, explain what Code Splitting means and give an example of why it is important.

  5. In your own words, explain what Virtualization means and give an example of why it is important.

Summary

In this module, we explored Performance Optimization. We learned about usememo, usecallback, react.memo, code splitting, virtualization. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

14

Error Boundaries

Handling errors gracefully in React applications.

Key Concepts
Error Boundary componentDidCatch Fallback UI react-error-boundary Error Logging

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Error Boundary
  • Define and explain componentDidCatch
  • Define and explain Fallback UI
  • Define and explain react-error-boundary
  • Define and explain Error Logging
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Error boundaries catch JavaScript errors in child components and display fallback UI instead of crashing. They're class components using componentDidCatch and getDerivedStateFromError. Wrap components: . Error boundaries don't catch: event handler errors (use try/catch), async code, or server-side rendering errors. Libraries like react-error-boundary provide hooks-based API. Place error boundaries strategically—around routes, features, or the entire app. Good error handling improves user experience during failures.

In this module, we will explore the fascinating world of Error Boundaries. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Error Boundary

What is Error Boundary?

Definition: Component that catches and handles errors in children

When experts study error boundary, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding error boundary helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Error Boundary is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


componentDidCatch

What is componentDidCatch?

Definition: Lifecycle method called when error is caught

The concept of componentdidcatch has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about componentdidcatch, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about componentdidcatch every day.

Key Point: componentDidCatch is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Fallback UI

What is Fallback UI?

Definition: Alternative UI shown when error occurs

To fully appreciate fallback ui, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of fallback ui in different contexts around you.

Key Point: Fallback UI is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


react-error-boundary

What is react-error-boundary?

Definition: Library providing simpler error boundary API

Understanding react-error-boundary helps us make sense of many processes that affect our daily lives. Experts use their knowledge of react-error-boundary to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: react-error-boundary is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Error Logging

What is Error Logging?

Definition: Sending errors to monitoring services

The study of error logging reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Error Logging is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Error Boundary Patterns

Implement effective error handling: Use react-error-boundary library for simpler API and hooks. Provide useful fallback UI with retry option: <ErrorBoundary FallbackComponent={ErrorFallback} onReset={() => refetch()}>. Log errors to monitoring services: onError={(error) => logToService(error)}. Nest boundaries for granular handling—let part of UI fail while rest works. Reset boundaries when users navigate away. Test error boundaries by throwing errors in development. These patterns create resilient applications.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? Error boundaries only work in class components because there's no hook equivalent—the React team says adding try/catch to functional components would change their semantics too much.


Key Concepts at a Glance

Concept Definition
Error Boundary Component that catches and handles errors in children
componentDidCatch Lifecycle method called when error is caught
Fallback UI Alternative UI shown when error occurs
react-error-boundary Library providing simpler error boundary API
Error Logging Sending errors to monitoring services

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what Error Boundary means and give an example of why it is important.

  2. In your own words, explain what componentDidCatch means and give an example of why it is important.

  3. In your own words, explain what Fallback UI means and give an example of why it is important.

  4. In your own words, explain what react-error-boundary means and give an example of why it is important.

  5. In your own words, explain what Error Logging means and give an example of why it is important.

Summary

In this module, we explored Error Boundaries. We learned about error boundary, componentdidcatch, fallback ui, react-error-boundary, error logging. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

15

Testing React Components

Writing tests for reliable React applications.

Key Concepts
React Testing Library render screen userEvent MSW

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain React Testing Library
  • Define and explain render
  • Define and explain screen
  • Define and explain userEvent
  • Define and explain MSW
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

Testing ensures your React components work correctly. React Testing Library focuses on testing behavior, not implementation. Install: npm install @testing-library/react jest. Write tests: render(

16

TypeScript with React

Adding type safety to React applications.

Key Concepts
TypeScript Interface Generic React.FC Type Inference

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain TypeScript
  • Define and explain Interface
  • Define and explain Generic
  • Define and explain React.FC
  • Define and explain Type Inference
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

TypeScript adds static typing to JavaScript, catching errors at compile time. With React, type props: interface ButtonProps { label: string; onClick: () => void; }. Use React.FC or type components directly: function Button({ label, onClick }: ButtonProps). Type state: useState<User | null>(null). Type events: (e: React.ChangeEvent). TypeScript improves IDE autocompletion, refactoring, and documentation. Most React projects now use TypeScript. It requires learning, but the benefits for team development and maintenance are significant.

In this module, we will explore the fascinating world of TypeScript with React. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


TypeScript

What is TypeScript?

Definition: Typed superset of JavaScript

When experts study typescript, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding typescript helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: TypeScript is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Interface

What is Interface?

Definition: TypeScript structure defining object shape

The concept of interface has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about interface, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about interface every day.

Key Point: Interface is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Generic

What is Generic?

Definition: Type that works with multiple types

To fully appreciate generic, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of generic in different contexts around you.

Key Point: Generic is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


React.FC

What is React.FC?

Definition: Function Component type with props

Understanding react.fc helps us make sense of many processes that affect our daily lives. Experts use their knowledge of react.fc to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: React.FC is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Type Inference

What is Type Inference?

Definition: TypeScript automatically determining types

The study of type inference reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Type Inference is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Common React TypeScript Patterns

Master these TypeScript patterns: For children, use React.ReactNode. For components as props, use React.ComponentType. Generic components: function List({ items }: { items: T[] }). Discriminated unions for state: type State = { status: 'loading' } | { status: 'success', data: User }. Infer types when possible. Use as const for literal types. Utility types like Partial, Required, and Pick help. Type context with createContext<ContextType | null>(null). These patterns cover most React TypeScript needs.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? TypeScript was created by Microsoft in 2012. React's official types are maintained by the DefinitelyTyped community in @types/react with millions of weekly downloads!


Key Concepts at a Glance

Concept Definition
TypeScript Typed superset of JavaScript
Interface TypeScript structure defining object shape
Generic Type that works with multiple types
React.FC Function Component type with props
Type Inference TypeScript automatically determining types

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what TypeScript means and give an example of why it is important.

  2. In your own words, explain what Interface means and give an example of why it is important.

  3. In your own words, explain what Generic means and give an example of why it is important.

  4. In your own words, explain what React.FC means and give an example of why it is important.

  5. In your own words, explain what Type Inference means and give an example of why it is important.

Summary

In this module, we explored TypeScript with React. We learned about typescript, interface, generic, react.fc, type inference. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

17

State Management Solutions

Comparing Redux, Zustand, and other state libraries.

Key Concepts
Redux Zustand Jotai Redux Toolkit Store

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Redux
  • Define and explain Zustand
  • Define and explain Jotai
  • Define and explain Redux Toolkit
  • Define and explain Store
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

For complex applications, you may need state management beyond Context. Redux is the classic choice: single store, actions, reducers, middleware. Redux Toolkit simplifies Redux significantly. Zustand offers simpler API: create((set) => ({ count: 0, increment: () => set(state => ({ count: state.count + 1 })) })). Jotai provides atomic state. Recoil from Facebook uses atoms and selectors. Choose based on app complexity: useState/Context for simple, Zustand/Jotai for medium, Redux for large apps with complex requirements.

In this module, we will explore the fascinating world of State Management Solutions. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Redux

What is Redux?

Definition: Predictable state container with actions and reducers

When experts study redux, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding redux helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Redux is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Zustand

What is Zustand?

Definition: Lightweight state management with hooks

The concept of zustand has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about zustand, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about zustand every day.

Key Point: Zustand is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Jotai

What is Jotai?

Definition: Atomic state management library

To fully appreciate jotai, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of jotai in different contexts around you.

Key Point: Jotai is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Redux Toolkit

What is Redux Toolkit?

Definition: Official toolset for efficient Redux development

Understanding redux toolkit helps us make sense of many processes that affect our daily lives. Experts use their knowledge of redux toolkit to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Redux Toolkit is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Store

What is Store?

Definition: Central location holding application state

The study of store reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Store is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: Choosing the Right Solution

Compare state management options: Redux Toolkit is powerful with devtools, middleware, and patterns for async—best for large teams with complex state. Zustand is minimal with hook-based API, small bundle, and simple setup—great for most apps. Jotai is atomic, bottom-up, and flexible—good for apps needing fine-grained reactivity. MobX uses observables for reactive programming fans. Don't over-engineer—start simple with useState/Context and add libraries only when needed. Many apps never need external state management.

This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.

Did You Know? Zustand means "state" in German. Its author, Poimandres, is a group creating popular React libraries including react-three-fiber for 3D graphics!


Key Concepts at a Glance

Concept Definition
Redux Predictable state container with actions and reducers
Zustand Lightweight state management with hooks
Jotai Atomic state management library
Redux Toolkit Official toolset for efficient Redux development
Store Central location holding application state

Comprehension Questions

Test your understanding by answering these questions:

  1. In your own words, explain what Redux means and give an example of why it is important.

  2. In your own words, explain what Zustand means and give an example of why it is important.

  3. In your own words, explain what Jotai means and give an example of why it is important.

  4. In your own words, explain what Redux Toolkit means and give an example of why it is important.

  5. In your own words, explain what Store means and give an example of why it is important.

Summary

In this module, we explored State Management Solutions. We learned about redux, zustand, jotai, redux toolkit, store. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!

18

Server Components and React 19

The future of React with server-side capabilities.

Key Concepts
Server Component Client Component use() Actions Hydration

Learning Objectives

By the end of this module, you will be able to:

  • Define and explain Server Component
  • Define and explain Client Component
  • Define and explain use()
  • Define and explain Actions
  • Define and explain Hydration
  • Apply these concepts to real-world examples and scenarios
  • Analyze and compare the key concepts presented in this module

Introduction

React Server Components (RSC) run on the server, sending only HTML to the client. They can access databases, filesystems, and perform expensive computations without sending code to the browser. Components are Server Components by default in frameworks like Next.js 13+. Client Components need "use client" directive. Server Components can't use state or effects—they're for static rendering. React 19 adds use() hook, actions for forms, and improved suspense. This marks a major evolution in React's capabilities.

In this module, we will explore the fascinating world of Server Components and React 19. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.

This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!


Server Component

What is Server Component?

Definition: Component that runs on the server

When experts study server component, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding server component helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.

Key Point: Server Component is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Client Component

What is Client Component?

Definition: Component that runs in the browser

The concept of client component has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about client component, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about client component every day.

Key Point: Client Component is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


use()

What is use()?

Definition: Hook to read promises and context

To fully appreciate use(), it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of use() in different contexts around you.

Key Point: use() is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Actions

What is Actions?

Definition: Functions for handling form submissions

Understanding actions helps us make sense of many processes that affect our daily lives. Experts use their knowledge of actions to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.

Key Point: Actions is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


Hydration

What is Hydration?

Definition: Making server-rendered HTML interactive

The study of hydration reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.

Key Point: Hydration is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!


🔬 Deep Dive: New React 19 Features

React 19 introduces powerful features: The use() hook reads promises and context conditionally. Actions handle form submissions with useFormState and useFormStatus. useOptimistic enables optimistic UI updates. Document metadata can be rendered in components with , <meta>. Improved hydration reduces errors. These features work best with frameworks like Next.js that implement the full React architecture. React is evolving from a library to a more complete framework ecosystem.</p> <p>This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.</p> <blockquote> <p><strong>Did You Know?</strong> Server Components were inspired by PHP's simplicity—load data and render on the server, send HTML to client. It's React coming full circle after years of client-side rendering!</p> </blockquote> <hr> <h2>Key Concepts at a Glance</h2> <table> <thead> <tr> <th>Concept</th> <th>Definition</th> </tr> </thead> <tbody><tr> <td><strong>Server Component</strong></td> <td>Component that runs on the server</td> </tr> <tr> <td><strong>Client Component</strong></td> <td>Component that runs in the browser</td> </tr> <tr> <td><strong>use()</strong></td> <td>Hook to read promises and context</td> </tr> <tr> <td><strong>Actions</strong></td> <td>Functions for handling form submissions</td> </tr> <tr> <td><strong>Hydration</strong></td> <td>Making server-rendered HTML interactive</td> </tr> </tbody></table> <hr> <h2>Comprehension Questions</h2> <p>Test your understanding by answering these questions:</p> <ol> <li><p>In your own words, explain what <strong>Server Component</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Client Component</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>use()</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Actions</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Hydration</strong> means and give an example of why it is important.</p> </li> </ol> <h2>Summary</h2> <p>In this module, we explored <strong>Server Components and React 19</strong>. We learned about server component, client component, use(), actions, hydration. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!</p> </div> </div> </details><details class="group rounded-xl border border-border bg-card overflow-hidden" data-astro-cid-tlvtcxmm> <summary class="flex items-center gap-4 p-4 cursor-pointer hover:bg-muted/50 transition-colors list-none [&::-webkit-details-marker]:hidden" data-astro-cid-tlvtcxmm> <div class="flex-shrink-0 w-10 h-10 rounded-full bg-primary/10 text-primary flex items-center justify-center text-sm font-semibold" data-astro-cid-tlvtcxmm> 19 </div> <div class="flex-1 min-w-0" data-astro-cid-tlvtcxmm> <h3 class="text-base font-semibold text-foreground group-open:text-primary transition-colors" data-astro-cid-tlvtcxmm> Building Production Applications </h3> <p class="text-sm text-muted-foreground mt-0.5 line-clamp-1" data-astro-cid-tlvtcxmm> Best practices for production-ready React apps. </p> </div> <div class="flex items-center gap-3 flex-shrink-0" data-astro-cid-tlvtcxmm> <div class="hidden sm:flex items-center gap-1 text-xs text-muted-foreground" data-astro-cid-tlvtcxmm> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3.5 h-3.5" data-astro-cid-tlvtcxmm="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <span data-astro-cid-tlvtcxmm>30m</span> </div> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-5 h-5 text-muted-foreground transition-transform duration-200 group-open:rotate-180" data-astro-cid-tlvtcxmm="true"><path d="m6 9 6 6 6-6"></path></svg> </div> </summary> <div class="px-4 pb-4 pt-2 border-t border-border bg-muted/20" data-astro-cid-tlvtcxmm> <div class="mb-4 p-3 rounded-lg bg-background border border-border" data-astro-cid-tlvtcxmm> <div class="flex items-center gap-2 text-xs font-medium text-foreground mb-2" data-astro-cid-tlvtcxmm> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag w-3.5 h-3.5" data-astro-cid-tlvtcxmm="true"><path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"></path><circle cx="7.5" cy="7.5" r=".5" fill="currentColor"></circle></svg> Key Concepts </div> <div class="flex flex-wrap gap-1.5" data-astro-cid-tlvtcxmm> <span class="text-xs bg-primary/10 text-primary px-2 py-0.5 rounded-full" title="React framework for production applications" data-astro-cid-tlvtcxmm> Next.js </span><span class="text-xs bg-primary/10 text-primary px-2 py-0.5 rounded-full" title="Full-stack React framework focused on web standards" data-astro-cid-tlvtcxmm> Remix </span><span class="text-xs bg-primary/10 text-primary px-2 py-0.5 rounded-full" title="Organizing code by feature rather than type" data-astro-cid-tlvtcxmm> Feature Folders </span><span class="text-xs bg-primary/10 text-primary px-2 py-0.5 rounded-full" title="Continuous integration and deployment pipeline" data-astro-cid-tlvtcxmm> CI/CD </span><span class="text-xs bg-primary/10 text-primary px-2 py-0.5 rounded-full" title="Reducing JavaScript size sent to browser" data-astro-cid-tlvtcxmm> Bundle Optimization </span> </div> </div> <div class="prose prose-sm dark:prose-invert max-w-none" data-astro-cid-tlvtcxmm> <h2>Learning Objectives</h2> <p>By the end of this module, you will be able to:</p> <ul> <li>Define and explain <strong>Next.js</strong></li> <li>Define and explain <strong>Remix</strong></li> <li>Define and explain <strong>Feature Folders</strong></li> <li>Define and explain <strong>CI/CD</strong></li> <li>Define and explain <strong>Bundle Optimization</strong></li> <li>Apply these concepts to real-world examples and scenarios</li> <li>Analyze and compare the key concepts presented in this module</li> </ul> <hr> <h2>Introduction</h2> <p>Production React applications need careful architecture. Use a framework like Next.js or Remix for routing, SSR, and optimization. Structure code in features or domains. Configure ESLint and Prettier for consistency. Set up CI/CD with testing. Handle errors with boundaries and monitoring. Implement authentication properly. Optimize bundle size with code splitting. Add analytics and performance monitoring. Consider accessibility from the start. Security: sanitize inputs, use HTTPS, implement CSP. Production apps require attention to all these areas.</p> <p>In this module, we will explore the fascinating world of <strong>Building Production Applications</strong>. You will discover key concepts that form the foundation of this subject. Each concept builds on the previous one, so pay close attention and take notes as you go. By the end, you'll have a solid understanding of this important topic.</p> <p>This topic is essential for understanding how the subject works and how experts organize their knowledge. Let's dive in and discover what makes this subject so important!</p> <hr> <h2>Next.js</h2> <h3>What is Next.js?</h3> <p><strong>Definition:</strong> React framework for production applications</p> <p>When experts study next.js, they discover fascinating details about how systems work. This concept connects to many aspects of the subject that researchers investigate every day. Understanding next.js helps us see the bigger picture. Think about everyday examples to deepen your understanding — you might be surprised how often you encounter this concept in the world around you.</p> <blockquote> <p><strong>Key Point:</strong> Next.js is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!</p> </blockquote> <hr> <h2>Remix</h2> <h3>What is Remix?</h3> <p><strong>Definition:</strong> Full-stack React framework focused on web standards</p> <p>The concept of remix has been studied for many decades, leading to groundbreaking discoveries. Research in this area continues to advance our understanding at every scale. By learning about remix, you are building a strong foundation that will support your studies in more advanced topics. Experts around the world work to uncover new insights about remix every day.</p> <blockquote> <p><strong>Key Point:</strong> Remix is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!</p> </blockquote> <hr> <h2>Feature Folders</h2> <h3>What is Feature Folders?</h3> <p><strong>Definition:</strong> Organizing code by feature rather than type</p> <p>To fully appreciate feature folders, it helps to consider how it works in real-world applications. This universal nature is what makes it such a fundamental concept in this field. As you learn more, try to identify examples of feature folders in different contexts around you.</p> <blockquote> <p><strong>Key Point:</strong> Feature Folders is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!</p> </blockquote> <hr> <h2>CI/CD</h2> <h3>What is CI/CD?</h3> <p><strong>Definition:</strong> Continuous integration and deployment pipeline</p> <p>Understanding ci/cd helps us make sense of many processes that affect our daily lives. Experts use their knowledge of ci/cd to solve problems, develop new solutions, and improve outcomes. This concept has practical applications that go far beyond the classroom.</p> <blockquote> <p><strong>Key Point:</strong> CI/CD is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!</p> </blockquote> <hr> <h2>Bundle Optimization</h2> <h3>What is Bundle Optimization?</h3> <p><strong>Definition:</strong> Reducing JavaScript size sent to browser</p> <p>The study of bundle optimization reveals the elegant complexity of how things work. Each new discovery opens doors to understanding other aspects and how knowledge in this field has evolved over time. As you explore this concept, try to connect it with what you already know — you'll find that everything is interconnected in beautiful and surprising ways.</p> <blockquote> <p><strong>Key Point:</strong> Bundle Optimization is a fundamental concept that you will encounter throughout your studies. Make sure you can explain it in your own words!</p> </blockquote> <hr> <h2>🔬 Deep Dive: React Application Architecture</h2> <p>Organize large React applications: Feature-based folders group related code (components, hooks, utils per feature). Shared code lives in common/components. Use barrel exports (index.ts) for clean imports. Colocation keeps related code together. Custom hooks abstract business logic. API layer centralizes data fetching. Types/interfaces in dedicated files. Environment variables for configuration. This architecture scales well and makes code discoverable. Adapt patterns to your team's needs rather than following rigidly.</p> <p>This is an advanced topic that goes beyond the core material, but understanding it will give you a deeper appreciation of the subject. Researchers continue to study this area, and new discoveries are being made all the time.</p> <blockquote> <p><strong>Did You Know?</strong> Meta (Facebook) runs the largest React application in the world—facebook.com has thousands of engineers committing to the same React codebase daily!</p> </blockquote> <hr> <h2>Key Concepts at a Glance</h2> <table> <thead> <tr> <th>Concept</th> <th>Definition</th> </tr> </thead> <tbody><tr> <td><strong>Next.js</strong></td> <td>React framework for production applications</td> </tr> <tr> <td><strong>Remix</strong></td> <td>Full-stack React framework focused on web standards</td> </tr> <tr> <td><strong>Feature Folders</strong></td> <td>Organizing code by feature rather than type</td> </tr> <tr> <td><strong>CI/CD</strong></td> <td>Continuous integration and deployment pipeline</td> </tr> <tr> <td><strong>Bundle Optimization</strong></td> <td>Reducing JavaScript size sent to browser</td> </tr> </tbody></table> <hr> <h2>Comprehension Questions</h2> <p>Test your understanding by answering these questions:</p> <ol> <li><p>In your own words, explain what <strong>Next.js</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Remix</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Feature Folders</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>CI/CD</strong> means and give an example of why it is important.</p> </li> <li><p>In your own words, explain what <strong>Bundle Optimization</strong> means and give an example of why it is important.</p> </li> </ol> <h2>Summary</h2> <p>In this module, we explored <strong>Building Production Applications</strong>. We learned about next.js, remix, feature folders, ci/cd, bundle optimization. Each of these concepts plays a crucial role in understanding the broader topic. Remember that these ideas are building blocks — each module connects to the next, helping you build a complete picture. Keep reviewing these concepts and you'll be well prepared for what comes next!</p> </div> </div> </details> </div> </div> </section> <!-- CTA --> <section class="mt-12 rounded-2xl bg-gradient-to-br from-primary/10 via-primary/5 to-transparent border border-primary/20 p-6 sm:p-8"> <div class="flex flex-col sm:flex-row items-center gap-6"> <div class="flex-shrink-0"> <div class="w-16 h-16 rounded-2xl bg-primary/20 flex items-center justify-center"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles w-8 h-8 text-primary"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg> </div> </div> <div class="flex-1 text-center sm:text-left"> <h3 class="text-lg font-semibold text-foreground"> Ready to master React.js Complete Guide? </h3> <p class="mt-1 text-sm text-muted-foreground"> Get personalized AI tutoring with flashcards, quizzes, and interactive exercises in the Eludo app </p> </div> <div class="flex flex-col sm:flex-row gap-3"> <a href="https://apps.apple.com/app/eludo-ai/id6737712044" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl bg-foreground text-background font-medium text-sm hover:opacity-90 transition-opacity"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download w-4 h-4"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg> <span>App Store</span> </a> <a href="https://play.google.com/store/apps/details?id=com.eludo.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl bg-primary text-primary-foreground font-medium text-sm hover:opacity-90 transition-opacity"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-smartphone w-4 h-4"><rect width="14" height="20" x="5" y="2" rx="2" ry="2"></rect><path d="M12 18h.01"></path></svg> <span>Google Play</span> </a> </div> </div> <div class="mt-6 flex flex-wrap justify-center sm:justify-start gap-4 text-xs text-muted-foreground"> <div class="flex items-center gap-1.5"> <span class="w-1.5 h-1.5 rounded-full bg-green-500"></span> Personalized learning </div> <div class="flex items-center gap-1.5"> <span class="w-1.5 h-1.5 rounded-full bg-blue-500"></span> Interactive exercises </div> <div class="flex items-center gap-1.5"> <span class="w-1.5 h-1.5 rounded-full bg-purple-500"></span> Offline access </div> </div> </section> <!-- Related Topics --> <section class="mt-12"> <h2 class="text-xl font-semibold text-foreground mb-4"> Related Topics </h2> <div class="grid gap-4 sm:grid-cols-2"> <a href="/learn/technology-computing/software-development/web-development/python-programming" class="group block rounded-xl border border-border bg-card hover:border-primary/50 hover:shadow-lg transition-all duration-200 overflow-hidden p-4"> <div class="flex items-start gap-3"> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> <h3 class="font-semibold text-foreground group-hover:text-primary transition-colors text-sm line-clamp-2"> Python Programming </h3> </div> <div class="flex flex-wrap items-center gap-3 mt-2"> <span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column w-3 h-3 mr-1"><line x1="18" x2="18" y1="20" y2="10"></line><line x1="12" x2="12" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="14"></line></svg> Beginner </span> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open w-3.5 h-3.5"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> <span>22 modules</span> </div> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <span>750 min</span> </div> </div> </div> </div> </a><a href="/learn/technology-computing/software-development/web-development/guia-completa-de-react-js" class="group block rounded-xl border border-border bg-card hover:border-primary/50 hover:shadow-lg transition-all duration-200 overflow-hidden p-4"> <div class="flex items-start gap-3"> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> <h3 class="font-semibold text-foreground group-hover:text-primary transition-colors text-sm line-clamp-2"> Guía Completa de React.js </h3> </div> <div class="flex flex-wrap items-center gap-3 mt-2"> <span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column w-3 h-3 mr-1"><line x1="18" x2="18" y1="20" y2="10"></line><line x1="12" x2="12" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="14"></line></svg> Intermediate </span> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open w-3.5 h-3.5"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> <span>19 modules</span> </div> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <span>600 min</span> </div> </div> </div> </div> </a><a href="/learn/technology-computing/software-development/web-development/programacion-en-python" class="group block rounded-xl border border-border bg-card hover:border-primary/50 hover:shadow-lg transition-all duration-200 overflow-hidden p-4"> <div class="flex items-start gap-3"> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> <h3 class="font-semibold text-foreground group-hover:text-primary transition-colors text-sm line-clamp-2"> Programación en Python </h3> </div> <div class="flex flex-wrap items-center gap-3 mt-2"> <span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column w-3 h-3 mr-1"><line x1="18" x2="18" y1="20" y2="10"></line><line x1="12" x2="12" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="14"></line></svg> Beginner </span> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open w-3.5 h-3.5"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> <span>22 modules</span> </div> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <span>750 min</span> </div> </div> </div> </div> </a><a href="/learn/technology-computing/software-development/web-development/fundamentos-de-ciberseguridad" class="group block rounded-xl border border-border bg-card hover:border-primary/50 hover:shadow-lg transition-all duration-200 overflow-hidden p-4"> <div class="flex items-start gap-3"> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> <h3 class="font-semibold text-foreground group-hover:text-primary transition-colors text-sm line-clamp-2"> Fundamentos de Ciberseguridad </h3> </div> <div class="flex flex-wrap items-center gap-3 mt-2"> <span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-no-axes-column w-3 h-3 mr-1"><line x1="18" x2="18" y1="20" y2="10"></line><line x1="12" x2="12" y1="20" y2="4"></line><line x1="6" x2="6" y1="20" y2="14"></line></svg> Intermediate </span> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open w-3.5 h-3.5"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> <span>20 modules</span> </div> <div class="flex items-center gap-1 text-xs text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <span>1200 min</span> </div> </div> </div> </div> </a> </div> </section> </article> </div> </main> <footer class="border-t border-border bg-background-secondary"> <div class="mx-auto px-4 sm:px-6 lg:px-8 max-w-6xl"> <div class="py-12 lg:py-16"> <!-- Main Footer Grid --> <div class="grid gap-8 lg:grid-cols-6"> <!-- Brand Column --> <div class="lg:col-span-2"> <a href="/" class="flex items-center gap-2"> <img src="/images/logo-icon.png" alt="Eludo AI" class="h-8" loading="lazy"> <span class="text-lg font-bold text-foreground">Eludo AI</span> </a> <p class="mt-4 max-w-xs text-sm text-muted-foreground"> AI-powered learning for everyone. </p> <div class="mt-6"> <div class="flex flex-wrap items-center gap-3"> <a href="#" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 rounded-lg bg-white px-4 py-2 text-black transition-opacity hover:opacity-90"> <svg class="h-10" viewBox="0 0 24 24" fill="currentColor"> <path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z"></path> </svg> <div class="flex flex-col"> <span class="text-[10px] leading-none">Download on the</span> <span class="text-sm font-semibold leading-tight">App Store</span> </div> </a> <a href="#" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 rounded-lg bg-white px-4 py-2 text-black transition-opacity hover:opacity-90"> <svg class="h-10" viewBox="0 0 24 24" fill="currentColor"> <path d="M3,20.5V3.5C3,2.91 3.34,2.39 3.84,2.15L13.69,12L3.84,21.85C3.34,21.6 3,21.09 3,20.5M16.81,15.12L6.05,21.34L14.54,12.85L16.81,15.12M20.16,10.81C20.5,11.08 20.75,11.5 20.75,12C20.75,12.5 20.53,12.9 20.18,13.18L17.89,14.5L15.39,12L17.89,9.5L20.16,10.81M6.05,2.66L16.81,8.88L14.54,11.15L6.05,2.66Z"></path> </svg> <div class="flex flex-col"> <span class="text-[10px] leading-none">GET IT ON</span> <span class="text-sm font-semibold leading-tight">Google Play</span> </div> </a> </div> </div> </div> <!-- Product --> <div> <h3 class="text-sm font-semibold text-foreground">Product</h3> <ul class="mt-4 space-y-3"> <li> <a href="/features" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Features </a> </li><li> <a href="/pricing" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Pricing </a> </li><li> <a href="/learn" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Explore Topics </a> </li><li> <a href="/learn-with-ai" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Learn with AI </a> </li> </ul> </div> <!-- Solutions --> <div> <h3 class="text-sm font-semibold text-foreground">Solutions</h3> <ul class="mt-4 space-y-3"> <li> <a href="/for-teachers" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> For Teachers </a> </li><li> <a href="/for-schools" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> For Schools </a> </li><li> <a href="/for-parents" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> For Parents </a> </li><li> <a href="/saas-escuelas" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> SaaS for Schools </a> </li><li> <a href="/colombia" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Colombia </a> </li> </ul> </div> <!-- Company --> <div> <h3 class="text-sm font-semibold text-foreground">Company</h3> <ul class="mt-4 space-y-3"> <li> <a href="/about" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> About </a> </li> </ul> </div> <!-- Legal --> <div> <h3 class="text-sm font-semibold text-foreground">Legal</h3> <ul class="mt-4 space-y-3"> <li> <a href="/privacy" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Privacy Policy </a> </li><li> <a href="/terms" class="text-sm text-muted-foreground transition-colors hover:text-foreground"> Terms of Service </a> </li> </ul> </div> </div> <!-- Bottom Bar --> <div class="mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 sm:flex-row"> <p class="text-sm text-muted-foreground"> © 2026 Eludo AI. All rights reserved. </p> <div class="flex items-center gap-4"> <a href="https://twitter.com/eludoai" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-foreground" aria-label="Twitter"> <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> </a><a href="https://linkedin.com/company/eludoai" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-foreground" aria-label="LinkedIn"> <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> </a><a href="https://instagram.com/eludoai" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-foreground" aria-label="Instagram"> <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z"/></svg> </a> </div> </div> </div> </div> </footer> </body></html>