CLI tool
epicweb-dev/react-fundamentals avatar
epicweb-dev/react-fundamentals

React Fundamentals: The epicweb-dev Workshop Repository by Kent C. Dodds

Material for my React Fundamentals Workshop

5,314 stars3,111 forksTypeScriptNOASSERTION

At a glance

What is it?
epicweb-dev/react-fundamentals is the code repository for the React Fundamentals workshop on EpicReact.dev, created by Kent C. Dodds. It uses React 19.2.0 and is structured as an epicshop application with runnable exercises covering components, error boundaries, and forms. Setup requires Node.js v20 or later and a single npx command.
Who is it for?
This repository is the right starting point for developers with basic JavaScript and TypeScript knowledge who want a structured, exercise-based introduction to React 19 fundamentals rather than following along with a video or reading documentation. The epicshop CLI manages the exercise runner, so the setup is a single npx command rather than manual configuration.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 27 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What This Repository Is and What It Teaches

epicweb-dev/react-fundamentals is not a library or a framework; it is workshop material. The repository contains exercises that run inside the epicshop application, which is Kent C. Dodds' workshop runner for the EpicWeb.dev and EpicReact.dev platforms. The README describes the workshop as teaching 'the fundamental React features necessary for building applications and libraries', covering React components, error handling, form elements, and related core concepts. The package.json identifies the instructor as Kent C. Dodds and the product host as www.epicreact.dev. The workshop uses React 19.2.0 and react-error-boundary 6.0.0. A learner who completes all exercises will have practical experience with the building blocks that React applications and libraries depend on, including how errors propagate and how form state is managed.

Prerequisites and System Requirements

The README lists three software prerequisites with minimum versions: git v2.18 or greater, Node.js v20 or greater, and npm v8 or greater. All three must be in the system PATH. To verify the environment before setup:

shell
git --version
node --version
npm --version

Beyond the tooling, the README requires basic knowledge of HTML, CSS, JavaScript, and TypeScript, and recommends installing the React DevTools browser extension before starting. Two pre-workshop resources are listed: the epicweb-dev/get-started-with-react repository and the Practical TypeScript workshop on epicweb.dev, where the first two sections are free. The TypeScript requirement is significant: the exercises are TypeScript files (`.ts` and `.tsx`), so learners who have not used TypeScript will need to follow the pre-reading.

Setting Up and Starting the Workshop

Setup uses the epicshop CLI rather than a plain npm install:

sh
npx --yes epicshop@latest add react-fundamentals

This command installs the epicshop runner and links the workshop exercises to it. Once setup is complete, the workshop starts with:

code
npm start

The `start` script in package.json delegates to `pkgmgrx --prefix ./epicshop epicshop start`, which launches the epicshop application. The workshop app provides a browser interface for navigating exercises, viewing instructions, and checking solutions. The epicshop directory inside the repository contains the runner configuration and is managed separately from the exercise files. The README links to the Epic Web Getting Started Guide for details on how to use the app once it is running.

Repository Structure: Exercises, Shared Code, and TypeScript Configuration

The repository root contains an `exercises/` directory with the workshop exercises and a `shared/` directory for code shared across exercises. The `epicshop/` directory holds the workshop runner configuration. TypeScript is configured via `tsconfig.json` at the root and a `paths` alias in package.json that maps `#*` to `./*`, allowing exercises to import shared utilities with a consistent path prefix. The package.json lists React 19.2.0 and react-error-boundary as runtime dependencies, which signals that the exercises cover both rendering and error handling. Linting uses ESLint with a config in `eslint.config.js`, and formatting uses Prettier via `@epic-web/config/prettier`. A `validate:all` script runs linting and type checking in parallel.

Licence, Product Hosting, and Workshop Access

The repository licence is GPL-3.0-only, which is notable for a workshop codebase. GPL-3.0 requires that any distributed derivative work be GPL-licensed, which affects any developer who forks the exercises and publishes modifications. The package.json lists the product host as www.epicreact.dev, a paid platform. The workshop exercises in this repository are the code component of a broader product that includes video instruction and a hosted exercise environment at fundamentals.epicreact.dev. The repository can be used locally as described above, but the full product experience, including video walkthroughs and the hosted version, is part of the paid EpicReact.dev subscription. The README does not specify which parts are free and which require payment; the Getting Started Guide at epicweb.dev clarifies this.

Limitations: No Self-Contained Learning Path, Workshop-Runner Dependency

The repository is not designed for reading on GitHub. The exercises are intended to be run inside the epicshop application, which provides navigation, instructions, and solution comparison. Without the workshop runner, the exercises are TypeScript files with no accompanying instructions visible in the repository. This means the repository is not a standalone tutorial that can be followed without installing the epicshop CLI. The README points to the Epic Web Getting Started Guide for details on the workshop app, which is an external resource. There are no GitHub releases, so the repository always reflects the current state of the main branch. A learner who needs a static, self-contained tutorial that does not require a workshop runner should look at the React documentation at react.dev instead.

Comparison to Reading the Official React Documentation

The official React documentation at react.dev is self-contained, free, and covers the same fundamental topics. It includes interactive sandboxes and challenges. The difference from epicweb-dev/react-fundamentals is format and depth: react.dev is reference and tutorial documentation designed for self-paced reading, while this workshop is an exercise-driven course structure with a specific progression, a workshop runner that tracks progress, and instructor video content (via EpicReact.dev). A developer who learns better by reading and experimenting in a browser sandbox will get more from react.dev. A developer who wants a structured exercise set with a clear sequence and instructor content will find the workshop format more effective. The prerequisite for both is the same: basic JavaScript knowledge.

Editorial conclusion

This repository is the right starting point for developers with basic JavaScript and TypeScript knowledge who want a structured, exercise-based introduction to React 19 fundamentals rather than following along with a video or reading documentation. The epicshop CLI manages the exercise runner, so the setup is a single npx command rather than manual configuration. The workshop is hosted commercially at EpicReact.dev; the repository is the exercise codebase, and some materials may be gated by the paid product. The licence is GPL-3.0-only, which means any derivative work that distributes this code must also be GPL-licensed. Verify Node.js v20 or later is installed before running setup, since the system requirements are explicit on that point.

Frequently asked questions

what is react fundamentals

React Fundamentals is the name of a workshop on EpicReact.dev by Kent C. Dodds. The epicweb-dev/react-fundamentals repository contains the exercise code for that workshop, covering React components, error boundaries, and form elements using React 19.

Does the react-fundamentals workshop require a paid subscription?

The exercise code in the repository can be run locally after cloning and running the epicshop setup command. The hosted workshop environment and video instruction are part of the paid EpicReact.dev product. The README does not specify which parts are gated.

Which React version does the epicweb-dev/react-fundamentals workshop use?

The package.json lists react 19.2.0 and react-dom 19.2.0 as dependencies. The workshop targets React 19 specifically.

Official sources

  1. epicweb-dev/react-fundamentals on GitHub
  2. Issues
  3. Project website
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/epicweb-dev-react-fundamentals.svg)](https://hysenlabs.com/projects/epicweb-dev-react-fundamentals)