React From Zero: A Browser-Only Tutorial That Skips the Build Step
GitHub describes it as A simple (99% ES2015 less) tutorial for React. The repository metadata lists HTML as its primary language. The metadata lists the GPL-2.0 license. This article stays within the project description and details documented in the GitHub repository README.
At a glance
- What is it?
- React From Zero teaches React through 18 single-file HTML lessons that run without any build tooling. It is a useful on-ramp for beginners, but its 99% ES2015-less style and manual script setup mean it is not a template for modern React work.
- Who is it for?
- Adopt React From Zero if you are a complete beginner who wants to see React concepts like JSX, components, and lifecycle methods working in a single HTML file, with no npm install or build step. Skip it if you need to learn modern React with hooks, a real project structure, or TypeScript, because this tutorial predates those and uses class components and inline scripts.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Probably not. The repository last received commits 94 months ago, on January 23, 2019.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Star history
- kay-is/react-from-zero4,582 ★ · -9
| Repository | 2026-08-13 | 2026-10-22 |
|---|---|---|
| kay-is/react-from-zero | 4.6k | 4.6k |
-9 Stars in the last 70 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What This Tutorial Actually Solves
React From Zero addresses a specific pain: the barrier to entry for React. Official docs and most tutorials assume you have Node.js, a package manager, and a build pipeline. This project removes all of that. The README states it is a 'simple (99% ES2015 less) tutorial for React' where 'everything runs in the browser without a manual pre-compilation.' That means you open an HTML file, and React works. The target audience is someone who has never written React and might not even have a development environment set up. It is not a production framework or a library; it is a sequence of 18 lessons, each a standalone HTML file. The value is in lowering the first step: you can learn what React elements and components are without first learning Webpack or Babel configuration.
The Mechanism: Inline Babel and Render Targets
Each lesson is a single HTML file that loads React and Babel from a CDN. The README mentions 'text/babel' script parts, which is the key mechanism. In a browser, a script tag with type="text/babel" tells Babel to transpile JSX and ES2015 code on the fly. React then renders into a DOM element with a specific ID. Lesson 0 starts with 'Object Elements,' and later lessons cover 'Element Factory,' 'JSX,' 'Nested Elements,' 'Components,' 'Properties,' and so on. The data flow is straightforward: you write JSX inside the script tag, Babel converts it to JavaScript, and ReactDOM renders it into the target. The render target ID is 'app' in the examples. This is a clever way to demo React without a server, but it has a cost: every page load runs Babel in the browser, which is slower than precompiled code. The tutorial does not address performance, because it is not meant for production.
Getting It Running: No Install, Just Open a File
The simplest way to run the examples is to clone the repository and open any lesson file in a web browser. For example, you can download the file 02-jsx.html and double-click it. The README also gives a path for create-react-app users: you copy the text/babel script parts from an example into the src/index.js file of a create-react-app project, and you change the render target's ID from 'app' to 'root.' That is the only configuration step mentioned. There is no package.json, no node_modules, no command line. The repository is primary language HTML, which confirms the file-based approach. If you want to use the live previews, the README links to GitHub Pages for each lesson, so you can run them without even downloading. This is as close to zero friction as a React tutorial can get.
The 99% ES2015-Less Constraint and Its Trade-Offs
The tutorial's core promise is that it avoids ES2015 syntax almost entirely. That means no arrow functions, no const or let, no destructuring, and no classes in the modern sense. Lesson 9 covers 'Component Classes,' but these are React.createClass, not ES6 classes. This is a deliberate choice to reduce cognitive load for beginners. The trade-off is that you are learning an older style of React. Modern React, as of 2025, uses function components and hooks, and ES2015 is the baseline for virtually all React code. The README does not mention hooks at all, which is expected given the project's age. If you learn from this tutorial, you will need to unlearn some patterns. For example, property types are covered in Lesson 6, but the modern PropTypes package is separate. The tutorial's approach is fine for grasping concepts, but it is not a reflection of how React is written today.
A Real Limitation: No Build Step Means No Real Project Skills
The biggest flaw is that the tutorial teaches React in isolation from the ecosystem. You never create a component in a separate file, you never import or export, and you never see a module bundler. In a real React project, you will use JSX with a build tool like Vite or Next.js, and you will manage dependencies. This tutorial skips all of that, which is fine for a first taste, but it leaves you unprepared for actual development. Another limitation is that the lessons use a global render target ID of 'app.' In a create-react-app project, the root is 'root,' so you must change that, as the README notes. If you forget, your component will not render. The tutorial does not explain why the ID matters, only that you need to change it. That is a gap in understanding. Also, the browser-based Babel approach can fail in restricted environments or with CSP (Content Security Policy) that blocks inline scripts. The README does not mention this, but it is a real-world constraint.
Alternatives: The Official Tutorial and Modern Boilerplates
The most direct alternative is the official React tutorial on react.dev, which now uses function components and hooks from the start. It also runs in the browser with an in-browser editor, so it solves the same problem of no build step, but with current syntax. Another alternative is a scaffolded project like create-react-app or Vite. With Vite, you run npm create vite@latest and select React, and you get a project with ES2015, a dev server, and hot reloading. The difference in approach is fundamental: React From Zero avoids the build step to simplify learning, while Vite embraces it and teaches you the real workflow. The official tutorial also includes interactive examples and a built-in editor, which React From Zero lacks because it is static HTML files. If you want to learn modern React, the official tutorial or a Vite setup is a better path. React From Zero is best for a quick, offline read-through of concepts before you commit to tooling.
Maintenance, License, and Upgrade Cost
The repository is not archived, but no recent releases were retrieved, and the last push date is unknown. The README links to translations in Chinese, Portuguese, Russian, Spanish, and Korean, which suggests some community activity, but the core content has not visibly changed. The license is GPL-2.0, which is a strong copyleft license. If you copy any of the example code into a project, that project may need to be GPL-compliant. That is a real consideration for engineers who want to reuse the lesson snippets in a commercial product. The README does not discuss licensing, so you must check it yourself. The upgrade cost is low because there is nothing to upgrade; the tutorial is static. However, the cost of learning outdated patterns is high if you later need to work on codebases using hooks. You will have to relearn component creation and state management. The tutorial is a time capsule, not a living document.
Editorial conclusion
Adopt React From Zero if you are a complete beginner who wants to see React concepts like JSX, components, and lifecycle methods working in a single HTML file, with no npm install or build step. Skip it if you need to learn modern React with hooks, a real project structure, or TypeScript, because this tutorial predates those and uses class components and inline scripts. Before using it, verify that the browser-based Babel approach still works with your current browser, and check the GPL-2.0 license if you plan to reuse any of the example code. The material is static and unmaintained, so treat it as a historical primer, not a current reference.
Frequently asked questions
How can I learn React from zero using this tutorial?
Open the lesson files in order, from 00-object-elements.html through 17-unit-testing.html. Each lesson is a single standalone HTML file that runs in the browser without a manual pre-compilation step, and every lesson in the README links both to the file on the repository and to a preview URL you can open directly.
What is TSX and JSX in this React tutorial?
JSX is lesson two of the tutorial, which follows lesson one on the element factory. The tutorial teaches the element-level API first, JSX second, then nested elements, components and properties, then component classes and lifecycle methods, and finally integration and unit testing. TypeScript extensions are not covered in the lesson list.
Does React From Zero need a build step?
No. Everything runs in the browser without a manual pre-compilation step, and the tutorial is described as a simple tutorial that is 99 percent ES2015 less, so the JavaScript stays close to what a browser runs natively. If you want to use the examples in a create-react-app project instead, you copy the text/babel script parts into src/index.js and change the renderTarget id from app to root.
How current is the React From Zero tutorial?
The last push to the repository is dated 2019-01-23 and there are no GitHub releases, so it is a finished tutorial rather than one being updated. Its middle lessons cover component classes and lifecycle methods, so check those concepts against the documentation of whichever React version you install.
Is React From Zero available in other languages?
Yes, through separate forks rather than files in this repository. The README lists Chinese, Brazilian Portuguese, Russian, Spanish and Korean versions, each hosted at its own account. Because they are independent forks, each reflects whatever state its maintainer last synchronised.
Official sources
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.
[](https://hysenlabs.com/projects/kay-is-react-from-zero)Star history chart for your README
[](https://hysenlabs.com/projects/kay-is-react-from-zero)