Starting out
What React is, which build of it every panel here runs, and how to read the first error you get.
3 of 3 written
React 19 from the first component to a tested, server-rendered app, and every line of output on every page really ran.
36 of 36 lessons written. The bar on every card below is counted from the lesson files that exist, not from a number I typed. A lesson that is planned and unwritten says so on its own page too.
Every panel runs React's development build unless its badge says React prod. Lesson 2 shows how and why. No network, and no npm dependencies of its own: React, TypeScript and happy-dom are vendored and checked by hash.
What React is, which build of it every panel here runs, and how to read the first error you get.
3 of 3 written
JSX is function calls: what it compiles to, how props and children travel, and rendering conditionally and in lists.
4 of 4 written
Events in a DOM, state as a snapshot per render, updating objects and arrays without mutating them, forms, and sharing state.
5 of 5 written
Synchronising with the world outside React, the dependency array, StrictMode's double run, when not to use an effect, and refs.
5 of 5 written
Context, reducers, custom hooks, and the rules of hooks, broken on purpose so you can read what React says.
4 of 4 written
When React re-renders, counted rather than guessed, what memo, useMemo and useCallback buy, and transitions.
3 of 3 written
Suspense and lazy, promises as data with use(), and error boundaries for the things that go wrong.
3 of 3 written
Actions and useActionState, optimistic updates and useFormStatus: forms that talk to the server.
2 of 2 written
renderToString, streaming, hydration and what a mismatch looks like, and the line between server code and client code.
4 of 4 written
Testing components with the test runner that ships in Node, and accessibility in React.
2 of 2 written
One reading list, end to end: rendered on the server, hydrated, filtered, added to, and tested, all by panels that really ran.
1 of 1 written
Newsletter
Occasional notes on shipping software with AI agents. No schedule, no filler, unsubscribe in one click.