mrkeyoor.com_
Tue 01 Sept 17:45 UTC
Webevaluationupdated 28 Aug 2026

30-Days-Of-React review

30 Days of React is a free, English-language course arranged as 30 daily lessons, starting with a JavaScript refresher and ending with hooks, context, refs, and projects. It gives self-directed learners explanations, code samples, exercises, and a separate boilerplate app for nearly every React lesson.

+8 / 4dstars / 7d
Verdict

Our Node 22 sandbox installed 1,223 packages in 82 seconds, but both the build and test commands failed, so use 30 Days of React as course text and bring a current practice environment. Its 30-part progression is useful for a learner who already knows JavaScript and likes detailed written exercises. It is a poor primary reference for current React setup, and the missing license makes reuse beyond personal study needlessly uncertain.

We ran it

Lab card: what happened when we ran 30-Days-Of-ReactScreenshot of 30-Days-Of-React (github.com/Asabeneh/30-Days-Of-React)
Install✓ · 82s1223 packages · 264 MB
Build✗ · 15s
Tests✗ · 8sran, no count parsed
Repo540 files~54,529 lines of source · 40.7 MB · 0 CI workflows

Answers from our run

Does 30-Days-Of-React build from source?

Dependencies installed in 82 seconds (1223 packages), and the build failed. We cloned commit 7ab55d6 into a clean Debian container with 3 CPUs and no project-specific setup.

Do 30-Days-Of-React's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use 30-Days-Of-React?

Complete programming beginners: the README requires intermediate HTML, CSS, and JavaScript, and points weaker JavaScript learners to a separate 30-day course first.

What are the alternatives to 30-Days-Of-React?

React documentation, The Odin Project, freeCodeCamp. Our Node 22 sandbox installed 1,223 packages in 82 seconds, but both the build and test commands failed, so use 30 Days of React as course text and bring a current practice environment.

Setup2/582-second install; build and test commands both failed
Docs3/530 detailed lessons, but setup and examples show their age
Community3/5Recent pushes and many stars, with 48 open issues
Maturity2/5Wide curriculum, old React stack, no license or releases

Who it’s for

Self-directed learners who already know intermediate HTML, CSS, and JavaScript.
Developers who learn well from long written lessons followed by exercises and small projects.
Readers who want class components covered before hooks and can translate older examples into current React.
Learners willing to use the repository as course text while keeping their own modern practice app.

Who it’s NOT for

Complete programming beginners: the README requires intermediate HTML, CSS, and JavaScript, and points weaker JavaScript learners to a separate 30-day course first.
Learners who want a current React toolchain supplied for them: the measured boilerplate uses React 16.13.1 and react-scripts 3.4.3, and its build failed on Node 22.
Anyone expecting an automated exercise grader or passing course suite: our test command found no tests, and the README says the many refresher exercises are optional.
Teams that need clear permission to reuse or republish the material: GitHub detected no license, the tree has no license file, and issue 325 has asked for one since 2023.
Readers who need every example maintained as a working reference: open issues report a Day 11 syntax error, an incomplete Day 7 exercise, and incorrect Day 23 country output.

Setup reality

Our sandbox installed 1,223 packages in 82 seconds and used 264 MB. The build failed after 15 seconds with an OpenSSL ERR_OSSL_EVP_UNSUPPORTED error. Tests failed after 8 seconds because react-scripts test found no tests among the 2 checked source files.

The measured app needs no account, API key, database, or hosted service. It lives under 03_Day_Setting_Up/03_setting_up_boilerplate/, so running commands at the repository root is the wrong starting point. The README expects a browser, editor, Node.js, and internet access.

The setup text demonstrates Node 12.14.0 and calls 12.17.0 the recommended download. Our Node 22.23.2 build did not complete, and the log only establishes that the bundled build path hit an unsupported OpenSSL operation. The repository provides many separate day folders rather than one maintained course application.

The 30-day path starts with JavaScript and reaches hooks on day 21

The course has one topic for each of 30 days. It opens with a large JavaScript refresher, introduces React and setup, then moves through components, props, lists, state, events, forms, routing, data fetching, and projects. Hooks arrive on day 21, followed by hook-based forms, fetching, custom hooks, context, and refs.

The stated prerequisites matter more than the beginner-friendly tone suggests. The README asks for intermediate HTML, CSS, and JavaScript, specifically mentioning arrays, loops, functions, objects, functional programming, destructuring, spreading, and classes. Learners without that base are directed to 30 Days of JavaScript first. Exercises accompany the lessons, while the opening refresher says its many exercises are optional.

The supplied app uses React 16.13.1 and react-scripts 3.4.3

The boilerplate we measured sits three directories deep under day 3. Its package file pins react-scripts 3.4.3 and declares React 16.13.1, React DOM 16.13.1, and older Testing Library packages. The setup chapter demonstrates Node 12.14.0 and describes 12.17.0 as the recommended download. Those details explain the era of the material without proving why any later runtime fails. They do tell you that a current Node and React setup is outside the course's tested path.

The lesson order also spends days 7 through 14 on class components, state, forms, and lifecycle methods before introducing hooks on day 21. Class components remain part of React, but a learner seeking current defaults will have to compare these lessons with the official React documentation. Open issues 103 and 418 both ask for a move toward newer, function-based React material.

What happened when we ran it

Our sandbox installed 1,223 Yarn packages in 82 seconds, leaving 264 MB on disk. We ran commit 7ab55d6 in a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22.23.2, and no secrets. The checked-out repository contained 540 files, about 54,529 lines of source, and occupied 40.7 MB before the installed dependencies. Installation succeeded, so the failure came later in the run.

The build exited with code 1 after 15 seconds. Its final stack trace came from babel-loader and reported ERR_OSSL_EVP_UNSUPPORTED, with OpenSSL saying a digital-envelope operation was unsupported. That is all the log proves. We did not turn that message into a claim about a specific dependency fix, and the README does not give a Node 22 route for this boilerplate. A learner following the current Node download path will need to resolve or avoid that mismatch.

Tests exited with code 1 after 8 seconds. react-scripts test checked 2 source files, matched no test files, and printed "No tests found." Our scan also found 0 CI workflow files, no Dockerfile, and no tests directory. For a course built around practice, the absence of tests means exercises are judged by the learner, a mentor, or the visible browser result. There is no repository-level safety net confirming that each daily example still runs.

Open corrections make some lessons poor copy-and-paste references

The 30 folders provide breadth, but several open reports concern specific teaching material. Issue 431 identifies malformed button markup in the first Day 11 event snippet. Issue 397 says a Day 7 exercise has remained incomplete, and issue 322 reports that the Day 23 country name and flag output is wrong. These are narrower than a claim that the whole course is broken. They are enough reason to read examples critically and check browser output before treating a snippet as a known-good answer.

The prose itself warns readers that it was published without proofreading and invites corrections. That candor sets the right expectation, though it shifts editorial checking to the learner. A long-form course can still teach useful concepts with typos, yet beginners often cannot tell whether a failure comes from their own code, the lesson, an external API, or an old package. The failed 15-second build adds another source of uncertainty before the learner reaches the actual React exercise.

A 2026 push shows activity, while 48 issues remain open

The last GitHub push was August 27, 2026, so this is not an untouched archive. A recent pull request removed sponsor details, and other pull requests received updates during 2026. GitHub showed 27,473 stars and 215 combined issues and pull requests when fetched. A separate issue search found 48 open issues. Several are old or poorly formed, while others describe precise corrections, so the count is a workload signal rather than a count of confirmed defects.

There is no published GitHub release, and GitHub detected no license. The commit tree also contains no license file. Issue 325 has requested one since May 2023 and explains the reuse uncertainty. Personal reading and forking are encouraged by the README, but organizations that want to copy lessons, ship derived courseware, or redistribute code should not infer legal permission from a public repository or a large star count.

Use the lessons for structure and a current scaffold for practice

The strongest use is selective reading. Follow the 30-day table for pacing, use the exercises as prompts, and build the answers in a current React environment whose documentation and tests you control. The course's plain explanations and gradual move from JavaScript into components can help a motivated learner, especially one who wants more detail than the official quick start provides. The cost is constant judgment about which setup and component patterns belong to React 16.

For current React conventions, start with reactjs/react.dev. The Odin Project is a better fit when React should sit inside a longer web curriculum, while freeCodeCamp supplies browser exercises with automated checks. 30 Days of React remains worth browsing because its 30 named stops reduce the blank-page problem. After an 82-second install followed by two failed commands, however, we would not hand its bundled boilerplate to a beginner without updating the practice setup first.

Alternatives

ProjectWhat it isPick it when
React documentationThe official React learning site teaches current component and hook patterns through guided examples.pick this instead when current React guidance matters more than a fixed 30-day challenge.
The Odin ProjectA community-maintained web curriculum with a wider path through JavaScript and React.pick this instead when you want prerequisites, projects, and React inside a longer web-development sequence.
freeCodeCamp gh↗An interactive curriculum with browser exercises, tests, and broader web-development coverage.pick this instead when automated checks and an in-browser learning path matter more than repository-based lessons.

What people are saying

  1. [velocity-scout] Asabeneh/30-Days-Of-React

Sources

  1. 30 Days of React README
  2. Measured day 3 boilerplate package at commit 7ab55d6
  3. Open issue 431: Day 11 syntax correction
  4. Open issue 397: incomplete Day 7 exercise
  5. Open issue 325: license request

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →