Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/_canary-channel-api-warning.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

**This API is currently only available in React Native’s Canary and Experimental channels.**

If you want to try it out, please [enable the Canary Channel](releases/release-levels) in your app.
If you want to try it out, please [enable the Canary Channel](release-levels) in your app.

:::
2 changes: 1 addition & 1 deletion docs/_experimental-channel-api-warning.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

Experimental APIs may contain bugs and are likely to change in a future version of React Native. Don't use them in production.

If you want to try it out, please [enable the Experimental Channel](releases/release-levels) in your app.
If you want to try it out, please [enable the Experimental Channel](release-levels) in your app.

:::
File renamed without changes.
33 changes: 0 additions & 33 deletions docs/releases/releases.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/upgrading.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: upgrading
title: Upgrading to new versions
title: Upgrading to New Versions
---

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import constants from '@site/core/TabsConstants';
Expand Down
34 changes: 32 additions & 2 deletions vercel.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,42 @@
},
{
"source": "/contributing/versioning-policy",
"destination": "/docs/next/releases/versioning-policy",
"destination": "/releases/versioning-policy",
"permanent": true
},
{
"source": "/releases/release-candidate-minor",
"destination": "/docs/next/releases/versioning-policy",
"destination": "/releases/versioning-policy",
"permanent": true
},
{
"source": "/docs/releases",
"destination": "/releases/overview",
"permanent": true
},
{
"source": "/docs/next/releases",
"destination": "/releases/overview",
"permanent": true
},
{
"source": "/docs/releases/versioning-policy",
"destination": "/releases/versioning-policy",
"permanent": true
},
{
"source": "/docs/next/releases/versioning-policy",
"destination": "/releases/versioning-policy",
"permanent": true
},
{
"source": "/docs/releases/release-levels",
"destination": "/docs/release-levels",
"permanent": true
},
{
"source": "/docs/next/releases/release-levels",
"destination": "/docs/next/release-levels",
"permanent": true
},
{
Expand Down
2 changes: 1 addition & 1 deletion website/blog/2025-12-10-react-native-0.83.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ We're working hard to make React Native releases more predictable and easier to

If you are on React Native 0.82, you should be able to upgrade your app to React Native 0.83 without any changes to your app code.

To learn more about what we consider a breaking change, have a look at [this article](/docs/releases/versioning-policy#what-is-a-breaking-change).
To learn more about what we consider a breaking change, have a look at [this article](/releases/versioning-policy#what-is-a-breaking-change).

## Deprecations

Expand Down
2 changes: 1 addition & 1 deletion website/blog/2026-04-07-react-native-0.85.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ In Animated, you can now animate layout props with native driver (the [limitatio

You can find more examples under [`react-native/packages/rn-tester/js/examples/AnimationBackend/`](https://github.com/facebook/react-native/tree/main/packages/rn-tester/js/examples/AnimationBackend).

To opt in, you can enable the experimental channel of React Native [as described in this page](/docs/releases/release-levels).
To opt in, you can enable the experimental channel of React Native [as described in this page](/docs/release-levels).

:::info

Expand Down
2 changes: 1 addition & 1 deletion website/blog/2026-06-11-react-native-0.86.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ React Native 0.86 has **no user-facing breaking changes**.

If you are on React Native 0.85, you should be able to upgrade your app to React Native 0.86 without any changes to your app code.

To learn more about what we consider a breaking change, have a look at [this article](/docs/releases/versioning-policy#what-is-a-breaking-change).
To learn more about what we consider a breaking change, have a look at [this article](/releases/versioning-policy#what-is-a-breaking-change).

## Deprecations

Expand Down
56 changes: 23 additions & 33 deletions website/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,8 @@ const config: Config = {
require.resolve('./src/css/index.scss'),
require.resolve('./src/css/showcase.scss'),
require.resolve('./src/css/versions.scss'),
require.resolve('./src/css/docs-secondary-nav.scss'),
require.resolve('./src/css/releases.scss'),
],
},
gtag: {
Expand Down Expand Up @@ -267,6 +269,16 @@ const config: Config = {
...commonDocsOptions,
} satisfies PluginContentDocs.Options,
],
[
'content-docs',
{
id: 'releases',
path: 'releases',
routeBasePath: '/releases',
sidebarPath: require.resolve('./sidebarsReleases'),
...commonDocsOptions,
} satisfies PluginContentDocs.Options,
],
[
'@docusaurus/plugin-pwa',
{
Expand Down Expand Up @@ -426,33 +438,22 @@ const config: Config = {
style: 'dark',
items: [
{
label: 'Development',
type: 'dropdown',
label: 'Docs',
position: 'right',
items: [
{
label: 'Guides',
type: 'doc',
docId: 'getting-started',
},
{
label: 'Components',
type: 'doc',
docId: 'components-and-apis',
},
{
label: 'APIs',
type: 'doc',
docId: 'accessibilityinfo',
},
{
label: 'Architecture',
type: 'doc',
docId: 'architecture-overview',
docsPluginId: 'architecture',
},
{label: 'Guides', to: '/docs/getting-started'},
{label: 'Components', to: '/docs/components-and-apis'},
{label: 'APIs', to: '/docs/accessibilityinfo'},
{label: 'Architecture', to: '/architecture/overview'},
],
},
{
to: '/releases/overview',
label: 'Releases',
position: 'right',
activeBaseRegex: '^/(releases|versions)',
},
{
type: 'doc',
docId: 'overview',
Expand All @@ -477,17 +478,6 @@ const config: Config = {
label: 'Blog',
position: 'right',
},
{
type: 'docsVersionDropdown',
position: 'left',
dropdownActiveClassDisabled: true,
dropdownItemsAfter: [
{
to: '/versions',
label: 'All versions',
},
],
},
{
href: 'https://github.com/facebook/react-native',
'aria-label': 'GitHub repository',
Expand Down
29 changes: 29 additions & 0 deletions website/releases/branches.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: Branches
sidebar_label: Branches
---

import IconExternalLink from '@theme/Icon/ExternalLink';

Each React Native release pins a specific set of platform components — the versions of React, Hermes, Yoga, and other core pieces it ships with.

The table below indicates what's included in the React Native platform for each release version, read from the tip of the corresponding `X-stable` branch in [`react/react-native`](https://github.com/react/react-native).

## Platform Versions

<div className="table-scroll">

| Branch | React<a href="https://github.com/facebook/react"><IconExternalLink /></a> | Hermes<a href="https://github.com/facebook/hermes"><IconExternalLink /></a> | Hermes V1<a href="https://github.com/facebook/hermes"><IconExternalLink /></a> | Yoga<a href="https://github.com/facebook/yoga"><IconExternalLink /></a> | React Native DevTools frontend<a href="https://github.com/react/react-native-devtools-frontend"><IconExternalLink /></a> |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 0.87-stable<a href="https://github.com/react/react-native/tree/0.87-stable"><IconExternalLink /></a> | `19.2.3` | — | `v250829098.0.16` | [`ee004e6b`](https://github.com/facebook/yoga/commit/ee004e6b3) | `chromium/7103` (Chrome 136) |
| 0.86-stable<a href="https://github.com/react/react-native/tree/0.86-stable"><IconExternalLink /></a> | `19.2.3` | `v0.17.0` | `v250829098.0.16` | [`c76b52b2`](https://github.com/facebook/yoga/commit/c76b52b20) | `chromium/7103` (Chrome 136) |
| 0.85-stable<a href="https://github.com/react/react-native/tree/0.85-stable"><IconExternalLink /></a> | `19.2.3` | `v0.16.0` | `v250829098.0.10` | [`cfdacac0`](https://github.com/facebook/yoga/commit/cfdacac0e) | `chromium/7103` (Chrome 136) |
| 0.84-stable<a href="https://github.com/react/react-native/tree/0.84-stable"><IconExternalLink /></a> | `19.2.3` | `v0.15.1` | `v250829098.0.9` | [`8ba025e8`](https://github.com/facebook/yoga/commit/8ba025e8b) | `chromium/7103` (Chrome 136) |
| 0.83-stable<a href="https://github.com/react/react-native/tree/0.83-stable"><IconExternalLink /></a> | `19.2.0` | `v0.14.1` | `v250829098.0.4` | [`69e87a4e`](https://github.com/facebook/yoga/commit/69e87a4e1) | `chromium/7103` (Chrome 136) |
| 0.82-stable<a href="https://github.com/react/react-native/tree/0.82-stable"><IconExternalLink /></a> | `19.1.1` | `2025-09-01-RNv0.82.0` | `76dc3793` | [`9f2a9476`](https://github.com/facebook/yoga/commit/9f2a9476e) | `chromium/7103` (Chrome 136) |
| 0.81-stable<a href="https://github.com/react/react-native/tree/0.81-stable"><IconExternalLink /></a> | `19.1.4` | `2025-07-07-RNv0.81.0` | — | [`c7c85621`](https://github.com/facebook/yoga/commit/c7c85621f) | `chromium/7103` (Chrome 136) |
| 0.80-stable<a href="https://github.com/react/react-native/tree/0.80-stable"><IconExternalLink /></a> | `19.1.0` | `2025-07-24-RNv0.80.2` | — | [`51e60950`](https://github.com/facebook/yoga/commit/51e609500) | `chromium/6613` (Chrome 128) |
| 0.79-stable<a href="https://github.com/react/react-native/tree/0.79-stable"><IconExternalLink /></a> | `19.0.0` | `2025-06-04-RNv0.79.3` | — | [`91997d6c`](https://github.com/facebook/yoga/commit/91997d6cd) | `chromium/6613` (Chrome 128) |
| 0.78-stable<a href="https://github.com/react/react-native/tree/0.78-stable"><IconExternalLink /></a> | `19.0.0` | `2025-01-13-RNv0.78.0` | — | [`91997d6c`](https://github.com/facebook/yoga/commit/91997d6cd) | `chromium/6613` (Chrome 128) |

</div>
60 changes: 60 additions & 0 deletions website/releases/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: Releases Overview
sidebar_label: Overview
---

import ReleasesTable from '@site/src/components/releases/ReleasesTable';

## Schedule

New React Native releases are shipped **every two months**, usually resulting in six (6) new minors per year.

Below is the schedule and current status of recent and upcoming React Native releases:

<div className="releases-schedule-table">
<ReleasesTable />
</div>

### Commitment to Stability

In order to support users upgrading React Native versions, we’re committed to maintain the **latest 3 minor series** (e.g. 0.78.x, 0.77.x and 0.76.x when 0.78 is the latest release).

For these releases we’ll be publishing regular updates and bug fixes.

You can read more about our support policy on [the react-native-releases working group](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md).

For more information on versioning and what we consider a breaking change, see our [Versioning Policy](/releases/versioning-policy).

### Support definitions

The different support levels presented in the table are defined as follows:

- **Future**
- After a new version branch gets cut, creating new Release Candidates to allow the community to test the upcoming version is very important. New RC releases are done at a high pace, as soon as viable.
- **Active**
- Stable releases in active support receive frequent updates. Latest stable has the highest priority, and at the start of its stable cycle (right after .0 is released) multiple patches will be done as soon as possible to stabilize the version and ensure a good upgrade experience to the community.
- **End of Cycle**
- A version in this support bracket will receive less patches, unless some important regressions need to be addressed. Once a next version becomes the new latest stable, before the version in EoC moves over into Unsupported one last patch released will be produced with the latest receive pick requests.
- **Unsupported**
- When a version is in the unsupported stage, no new released are to be expected. Only very important regressions might create exceptions to this rule; it is recommended that codebases using an unsupported version upgrade as soon as possible.

## Release channels

React Native is published to [npm](https://www.npmjs.com/package/react-native) under three release channels, each identified by an npm [dist-tag](https://docs.npmjs.com/cli/v10/commands/npm-dist-tag). They trade stability off against how early you receive new changes.

| Channel | Install | Stability | Use it for |
| --------- | ---------------------- | -------------------- | ---------------------------------- |
| `latest` | `react-native@latest` | Stable | Production apps |
| `next` | `react-native@next` | ⚠️ Release candidate | Testing an upcoming release |
| `nightly` | `react-native@nightly` | ⚠️ Unstable | Tracking `main` for early feedback |

:::note

**Release candidates and nightlies are not intended for production use.** This section will be most relevant to developers who work on frameworks, libraries, or developer tooling. Developers who use React Native primarily to build user-facing applications should not need to worry about release channels other than `latest`.

:::

- **Release Candidates**
- Published under the `next` tag ahead of every stable release, starting at `rc.0` (versioned like `0.79.0-rc.0`).
- **Nightlies**
- Published daily from the `main` branch of [`react/react-native`](https://github.com/react/react-native), versioned like `0.80.0-nightly-<DATE>-<SHA>` (`<DATE>` is the build date, `<SHA>` the source commit).
Loading