Open-source project
midudev/aprendiendo-react avatar
midudev/aprendiendo-react

midudev/aprendiendo-react: a project-based React course repo, not a library

Curso para aprender React desde cero

9,001 stars1,200 forksTypeScriptLicense varies

At a glance

What is it?
midudev/aprendiendo-react is a pnpm monorepo of fourteen React projects that follow a Twitch course. It is a learning path with runnable code, not a package you install into an app.
Who is it for?
Adopt midudev/aprendiendo-react if you learn by reading and running complete apps rather than isolated snippets, and you are comfortable with Vite-era tooling. Skip it if you need a documented syllabus, a stable API, or a package to depend on: there are no releases and the root package.json declares the ISC licence while the README names no licence.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 173 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 September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What midudev/aprendiendo-react actually is, and who it is for

This repository is the code companion to a Spanish-language React course streamed on Twitch and archived on YouTube. The README lists fourteen numbered projects, each with a folder under projects/, a live demo on a surge.sh subdomain, and, for most of them, a matching video. The scope runs from a Twitter follow card through Tic Tac Toe, a mouse follower, a shopping cart, a hand-written router, a Redux Toolkit CRUD, and a Hacker News client built with SWR.

It is aimed at people who already write some JavaScript and want to see React applied end to end. The repository has no published package and no releases, so it is not something you add to an existing dependency tree. You clone it, pick a folder, and read or run that project. The teaching unit is the project, not the API surface.

One caveat about language: the README, the video titles and the project names are in Spanish. The code itself is TypeScript and JSX, so an English-speaking reader can follow the source, but the explanatory layer is not translated in the repository.

How the monorepo is laid out and how a project runs

The root package.json declares "workspaces": ["projects/*"], and the repository also carries pnpm-workspace.yaml and pnpm-lock.yaml. That combination tells you the intended package manager is pnpm, and that each folder under projects/ is its own package with its own dependencies. A shared tsconfig.json and .eslintignore sit at the root, so editor tooling can resolve the whole tree at once.

The root manifest is deliberately thin. Its only script is test, and it is the npm default: echo "Error: no test specified" && exit 1. There is no root build, no root dev server, and no orchestration layer. Each project carries its own scripts, so the workflow is to change directory into the project you want and run it there. The devDependencies block at the root contains a single entry, standard 17.0.0, which suggests linting was run from the root at some point rather than per project.

That layout is a reasonable choice for teaching. It keeps every project self-contained and copyable. It also means there is no single command that starts everything, and no shared dependency version to keep the fourteen projects consistent with each other.

Installing it and running the first project

There is no install section in the README, so the entry point is the repository itself. Clone it, install pnpm if you do not have it, and let the workspace resolve dependencies for every project at once from the root.

bash
git clone https://github.com/midudev/aprendiendo-react.git
cd aprendiendo-react
pnpm install

Because the root package.json declares projects/* as workspaces, that single install walks each project folder. Expect a large dependency tree: the projects span React Router, Redux Toolkit, React Query, Zustand, SWR and TypeScript, so the union of their dependencies is not small.

Then move into the first project and start its dev server. The README links this folder as projects/01-twitter-follow-card/.

bash
cd projects/01-twitter-follow-card
pnpm dev

The script name comes from the project folder, not from the root manifest, so if pnpm dev reports a missing script, open that project's package.json and check which script it declares. That is the pattern for every project in the repository: the root tells you nothing about how a given folder starts.

Where the course sequence is uneven

The README's video list and its project table do not line up cleanly. Video 14 is marked "Pendiente de subir" (pending upload), yet the project table lists a Hacker News client with TypeScript and SWR at number 14 with a live demo link. So the code exists and the recording does not, at least as of the README's own text.

There is a similar mismatch around the technical-interview entries. The table contains both 11 and 11b, the second being the same exercise rebuilt with React Query, and both point at the same demo URL, midu-react-11.surge.sh. Two folders, one deployment.

The numbering also shifts topic between adjacent entries: 07 is a router written from scratch, 08 is a Todo app with TypeScript and animations, 09 pulls in ChatGPT for a Google Translate clone. Someone working through the list in order will hit a large jump in external dependencies at 09 and again at 10, where Redux Toolkit and Rome Tools appear. The repository does not group the projects by difficulty or by concept, so the order is chronological rather than pedagogical.

The trade-offs of a course that lives in a git repository

The main limitation is that this is a snapshot of a live course, not a maintained product. The last push to the repository was on 2026-04-10, roughly five months before this writing, and there are no releases to pin to. Nothing in the README commits to updating a project when React or a dependency changes. If you clone it in a year, the projects may still install, or a major version bump in one of the six state and data libraries the course covers may break a folder.

A second limitation is that the root manifest is not a useful contract. Its test script exits with an error by design, so there is no repository-wide check you can run to know whether the code still works. Each project would need to be verified on its own.

A third is the missing licence clarity. The root package.json declares "license": "ISC", but the README states no licence and there is no LICENSE file among the top-level entries listed. If you want to reuse a project's code in your own work, that discrepancy is worth resolving with the author rather than assuming either answer.

Finally, the README does not document rollback, version pinning, or a supported Node version. Those are absent, not merely terse.

How it differs from a written React curriculum

The obvious alternative is a text-based course with a fixed syllabus, the kind of thing people search for as a React book or a React documentation PDF. The difference is structural. A book presents concepts in a chosen order and the reader types the examples. This repository presents finished applications and the reader reads them, with the video supplying the narration.

That has a real consequence for how you learn. Reading projects/07-midu-router/ shows you a working router implementation, but the design decisions that led to it are in the video, not in the code comments. If you learn best from a linear argument where each chapter depends on the previous one, a written curriculum will serve you better. If you learn by opening a file, changing a value, and seeing what breaks, the runnable projects here are the faster path.

The projects also differ from a documentation site in that they are opinionated end to end. A tutorial might show you useState in isolation. Project 06 shows a shopping cart with state wired through a component tree, which is closer to the problem you will actually face and harder to skim.

Maintenance, upgrade cost and licence

Treat this as a course archive. The last push was on 2026-04-10, there are no releases, and the repository is not archived, so it remains readable and clonable but carries no compatibility promise. Upgrading means running pnpm install inside a project and fixing whatever the current versions of React, Vite and the state libraries demand. Multiply that by fourteen folders if you want the whole tree working.

On licensing, the only machine-readable statement is "license": "ISC" in the root package.json. ISC is a permissive licence comparable in effect to MIT, but the absence of a LICENSE file and the README's silence mean you should confirm the terms before redistributing a project or its assets. The live demos are hosted on surge.sh subdomains, which is separate from the code licence. This is a description of what the repository states, not legal advice.

Editorial conclusion

Adopt midudev/aprendiendo-react if you learn by reading and running complete apps rather than isolated snippets, and you are comfortable with Vite-era tooling. Skip it if you need a documented syllabus, a stable API, or a package to depend on: there are no releases and the root package.json declares the ISC licence while the README names no licence. Before cloning, open projects/01-twitter-follow-card/package.json and confirm the scripts and dependency set you intend to run.

Frequently asked questions

Is React still relevant in 2026?

The repository does not discuss React's standing in the job market. It is a course built around React hooks, React Router, Redux Toolkit, React Query, Zustand and SWR, and it presents those as the tools to learn.

Is React very difficult to learn?

The README gives no difficulty rating. Its structure implies prior JavaScript knowledge, since the projects move quickly into hooks, TypeScript and third-party state libraries.

Can I learn React in 3 days with midudev/aprendiendo-react?

The README makes no claim about completion time. It is fourteen projects with accompanying videos, several of which introduce a new library, so working through the full list is a longer commitment than three days.

Official sources

  1. Issues
  2. midudev/aprendiendo-react on GitHub
  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/midudev-aprendiendo-react.svg)](https://hysenlabs.com/projects/midudev-aprendiendo-react)