2013 – 2026
React Versions
Every public release of React — from the 0.x line that began in 2013 through React 19 — with ship dates and the headline changes each one introduced. React’s version numbers jumped straight from 0.14 to 15, and much of its most-searched history lands in minor releases: Hooks shipped in 16.8, not a major. Below: the per-version table, where React 1–14 went, the 0.x lineage, and the prose history from Jordan Walke’s Facebook prototype through Concurrent React and Server Components.
Jordan Walke, FaxJS, and the 2013 open-sourcing
React began at Facebook around 2011 as an internal prototype by engineer Jordan Walke, originally called FaxJS. It grew out of a homegrown PHP UI library (XHP) and the problem of keeping Facebook’s increasingly interactive News Feed in sync with its data. The core idea was to re-render a component’s whole UI on every state change and let a fast diffing layer — the virtual DOM — apply only the minimal real changes. React shipped inside Facebook’s News Feed in 2011 and was adopted by Instagram after Facebook acquired it in 2012.
React was open-sourced at JSConf US in May 2013 (the initial public commit is dated May 29, 2013). The reception was initially skeptical: JSX — React’s syntax for writing markup inside JavaScript — struck many developers as a violation of the “separation of concerns” principle that had kept HTML, CSS, and JS in separate files. React’s counter-argument, that components co-locate the markup and the logic that actually change together, gradually won out, and JSX became one of the most widely copied ideas in front-end tooling.
For the language JSX compiles into, and the TypeScript dialect most React apps are written in today, see the JavaScript Versions and TypeScript Versions pages.
Fiber, and the BSD-patents-to-MIT relicensing (2017)
By 2016 React’s original reconciler — the part that decides what to update — had reached its limits. The team rebuilt it as Fiber, an incremental engine that can split rendering work into units, pause and resume them, and prioritize urgent updates. Fiber shipped in React 16.0 (September 2017) with no change to the public API, and it is the substrate that made Concurrent React (18) and Suspense possible years later.
React 16 also resolved a licensing fight. React had shipped under a BSD license plus an additional patents grant that revoked the patent license if you sued Facebook for patent infringement. In 2017 the Apache Software Foundation classified that clause as incompatible with its projects, and the controversy peaked when WordPress announced it would move away from React. In September 2017 Facebook relicensed React under the standard MIT license, and React 16 was the first release to carry it — removing the legal cloud that had kept some organizations off React.
React is maintained by Meta (formerly Facebook) together with a large open-source community, and remains a library rather than a framework — a distinction the team continues to make explicit.
Hooks — the 16.8 watershed
For React’s first five years, state and lifecycle methods lived in class components, while function components were limited to stateless presentation. Sharing stateful logic between components meant awkward patterns (higher-order components, render props) that wrapped the component tree in extra layers. Hooks, previewed at React Conf in October 2018 and shipped in React 16.8 on February 6, 2019, let function components hold state (useState), run side effects (useEffect), and read context (useContext) directly, and let stateful logic be packaged as reusable custom hooks.
The detail that trips people up is that this landmark change shipped in a minor version, not a major — which is why “which version of React added Hooks?” is one of the most common React-versioning questions, and why this page lists feature-bearing minors as their own rows. Hooks became the default way to write React; classes still work but are rarely written in new code.
Concurrent React, Server Components, and react.dev
React 18 (March 2022) turned Fiber’s capabilities into public APIs under the banner of Concurrent React: transitions, automatic batching, streaming server rendering with Suspense, and createRoot. Rather than a single “concurrent mode” switch, the concurrency showed up gradually through individual features — the foundation for what came next.
React 19 (December 2024) shipped Server Components and Actions as stable features, alongside the use API, form hooks, and document-metadata support — a shift toward rendering work on the server and treating data mutations as first-class. It arrived with the React Compiler, which automatically memoizes components so developers write less useMemo / useCallback by hand; the compiler reached its 1.0 in October 2025.
Alongside the code, React’s documentation moved from reactjs.org to react.dev in March 2023, reframing the recommended path around production frameworks (such as Next.js) rather than the older create-an-app workflow. That pivot was made concrete in February 2025 when the team sunset Create React App, pointing new projects at frameworks or build tools like Vite instead. React itself stays a view library; the framework layer lives in the ecosystem around it.