lauren d52b3ec734 Fix deadlinks (#7880)
* [be] Add deadlinks script

While rewriting the compiler docs I happened to notice some deadlinks. This PR adds a new `yarn deadlinks` script to identify all deadlinks.

I decided to make this a script for now for simplicity but in the future could be ported to an ESlint rule.

The script handles:

- [x] checks images correctly (images are stored in /public but links can omit the /public)
- [x] looks up React error codes for dynamic error pages
- [x] lints links to contributors and uses URL from acknowledgements page if the member is no longer active on the core team
- [x] special injected anchor tags like #recap and #challenges

Example:

```
yarn run v1.22.22
$ node scripts/deadLinkChecker.js
Checking 177 markdown files...
Fetched 552 React error codes

src/content/learn/add-react-to-an-existing-project.md:23:58
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/add-react-to-an-existing-project.md:27:45
  Link text: benefit from the best practices
  URL: /learn/start-a-new-react-project#can-i-use-react-without-a-framework
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/add-react-to-an-existing-project.md:152:269
  Link text: a React framework
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/synchronizing-with-effects.md:735:18
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/typescript.md:16:3
  Link text: Common types from `@types/react`
  URL: /learn/typescript/#useful-types
  ✗ Target file not found for: /learn/typescript/

src/content/learn/typescript.md:17:3
  Link text: Further learning locations
  URL: /learn/typescript/#further-learning
  ✗ Target file not found for: /learn/typescript/

src/content/learn/typescript.md:23:5
  Link text: production-grade React frameworks
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/you-might-not-need-an-effect.md:29:399
  Link text: frameworks
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/you-might-not-need-an-effect.md:754:106
  Link text: frameworks
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/learn/your-first-component.md:218:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react/ViewTransition.md:146:248
  Link text: reveal content
  URL: /link-to-suspense-below
  ✗ Target file not found for: /link-to-suspense-below

src/content/reference/react/captureOwnerStack.md:60:94
  Link text: `errorInfo.componentStack` in `onUncaughtError`
  URL: /reference/react-dom/client/hydrateRoot#show-a-dialog-for-uncaught-errors
  ✗ Anchor #show-a-dialog-for-uncaught-errors not found in reference/react-dom/client/hydrateRoot.md

src/content/reference/react/forwardRef.md:9:65
  Link text: here
  URL: /blog/2024/04/25/react-19#ref-as-a-prop
  ✗ Target file not found for: /blog/2024/04/25/react-19

src/content/reference/react/use.md:315:24
  Link text: Server Component
  URL: /reference/react/components#server-components
  ✗ Anchor #server-components not found in reference/react/components.md

src/content/reference/react/useEffect.md:899:67
  Link text: if you use a framework,
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react/useEffect.md:1051:18
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react/useEffect.md:1736:92
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react/useInsertionEffect.md:136:65
  Link text: non-blocking update,
  URL: /reference/react/useTransition#marking-a-state-update-as-a-non-blocking-transition
  ✗ Anchor #marking-a-state-update-as-a-non-blocking-transition not found in reference/react/useTransition.md

src/content/reference/react-dom/createPortal.md:53:76
  Link text: key.
  URL: /learn/rendering-lists/#keeping-list-items-in-order-with-key
  ✗ Target file not found for: /learn/rendering-lists/

src/content/reference/react-dom/index.md:24:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/index.md:51:3
  Link text: `unmountComponentAtNode`
  URL: /reference/react-dom/unmountComponentAtNode
  ✗ Target file not found for: /reference/react-dom/unmountComponentAtNode

src/content/reference/react-dom/preinit.md:7:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/preinitModule.md:7:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/preload.md:7:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/preloadModule.md:7:1
  Link text: React-based frameworks
  URL: /learn/start-a-new-react-project
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/rsc/directives.md:13:36
  Link text: bundlers compatible with React Server Components
  URL: /learn/start-a-new-react-project#full-stack-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/rsc/server-components.md:7:34
  Link text: React Server Components
  URL: /learn/start-a-new-react-project#full-stack-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/rsc/server-functions.md:198:28
  Link text: `useActionState`
  URL: /reference/react-dom/hooks/useFormState
  ✗ Target file not found for: /reference/react-dom/hooks/useFormState

src/content/reference/rsc/server-functions.md:222:28
  Link text: `useActionState`
  URL: /reference/react-dom/hooks/useFormState
  ✗ Target file not found for: /reference/react-dom/hooks/useFormState

src/content/reference/rsc/use-client.md:44:77
  Link text: compatible bundlers
  URL: /learn/start-a-new-react-project#full-stack-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/rsc/use-server.md:98:54
  Link text: serializable props
  URL: /reference/rsc/use-client#passing-props-from-server-to-client-components
  ✗ Anchor #passing-props-from-server-to-client-components not found in reference/rsc/use-client.md

src/content/reference/react-dom/client/createRoot.md:212:278
  Link text: using a framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/client/index.md:7:185
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/components/common.md:919:89
  Link text: check out more examples.
  URL: /reference/react/useRef#examples-dom
  ✗ Anchor #examples-dom not found in reference/react/useRef.md

src/content/reference/react-dom/components/form.md:39:23
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/form.md:233:63
  Link text: reference documentation
  URL: /reference/react/hooks/useOptimistic
  ✗ Target file not found for: /reference/react/hooks/useOptimistic

src/content/reference/react-dom/components/input.md:33:24
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/link.md:33:23
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/meta.md:33:23
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/option.md:39:25
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/progress.md:33:27
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/script.md:34:25
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/select.md:39:25
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/style.md:33:24
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/textarea.md:33:27
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/components/title.md:33:24
  Link text: common element props.
  URL: /reference/react-dom/components/common#props
  ✗ Anchor #props not found in reference/react-dom/components/common.md

src/content/reference/react-dom/server/index.md:7:182
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/reference/react-dom/static/index.md:7:146
  Link text: framework
  URL: /learn/start-a-new-react-project#production-grade-react-frameworks
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/blog/2023/03/16/introducing-react-dev.md:45:5
  Link text: API Reference
  URL: /reference
  ✗ Target file not found for: /reference

src/content/blog/2023/03/16/introducing-react-dev.md:610:117
  Link text: Alternatives
  URL: /reference/react-dom/findDOMNode#alternatives
  ✗ Target file not found for: /reference/react-dom/findDOMNode

src/content/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023.md:34:40
  Link text: Next.js App Router
  URL: /learn/start-a-new-react-project#nextjs-app-router
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023.md:95:605
  Link text: Next.js App Router
  URL: /learn/start-a-new-react-project#nextjs-app-router
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024.md:110:3
  Link text: Sathya Gunasekaran
  URL: /community/team#sathya-gunasekaran
  ✗ Contributor link should be updated to: https://github.com/gsathya

src/content/blog/2024/04/25/react-19-upgrade-guide.md:132:20
  Link text: improved how errors are handled
  URL: /blog/2024/04/25/react-19#error-handling
  ✗ Target file not found for: /blog/2024/04/25/react-19

src/content/blog/2024/04/25/react-19-upgrade-guide.md:502:19
  Link text: `ref` as a prop
  URL: /blog/2024/04/25/react-19#ref-as-a-prop
  ✗ Target file not found for: /blog/2024/04/25/react-19

src/content/blog/2024/12/05/react-19.md:358:391
  Link text: Full-stack React Architecture
  URL: /learn/start-a-new-react-project#which-features-make-up-the-react-teams-full-stack-architecture-vision
  ✗ Target file not found for: /learn/start-a-new-react-project

src/content/blog/2024/12/05/react-19.md:392:28
  Link text: React Server Actions
  URL: /reference/rsc/server-actions
  ✗ Target file not found for: /reference/rsc/server-actions

src/content/blog/2025/04/23/react-labs-view-transitions-activity-and-more.md:2498:37
  Link text: view transition classes
  URL: /reference/react/ViewTransition#view-transition-classes
  ✗ Anchor #view-transition-classes not found in reference/react/ViewTransition.md


Found 58 dead links out of 1555 total links

info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

```

* Fix deadlinks

Following `yarn deadlinks` as a guide, I fixed the following deadlinks:

| File | Link Text | Current URL | Issue Type | Actual Fix Applied | Status |
|------|-----------|-------------|------------|-------------------|--------|
| `add-react-to-an-existing-project.md:23` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `add-react-to-an-existing-project.md:27` | benefit from the best practices | `/learn/start-a-new-react-project#can-i-use-react-without-a-framework` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `add-react-to-an-existing-project.md:152` | a React framework | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `synchronizing-with-effects.md:735` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `typescript.md:16` | Common types from `@types/react` | `/learn/typescript/#useful-types` | Trailing slash | `/learn/typescript#useful-types` |  Fixed |
| `typescript.md:17` | Further learning locations | `/learn/typescript/#further-learning` | Trailing slash | `/learn/typescript#further-learning` |  Fixed |
| `typescript.md:23` | production-grade React frameworks | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `you-might-not-need-an-effect.md:29` | frameworks | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `you-might-not-need-an-effect.md:754` | frameworks | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `your-first-component.md:218` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `ViewTransition.md:146` | reveal content | `/link-to-suspense-below` | Placeholder URL | `/reference/react/Suspense#revealing-content-together-at-once` |  Fixed |
| `captureOwnerStack.md:60` | `errorInfo.componentStack` in `onUncaughtError` | `/reference/react-dom/client/hydrateRoot#show-a-dialog-for-uncaught-errors` | Missing anchor | `/reference/react-dom/client/hydrateRoot#error-logging-in-production` |  Fixed |
| `forwardRef.md:9` | here | `/blog/2024/04/25/react-19#ref-as-a-prop` | Missing file + anchor | `/blog/2024/12/05/react-19#ref-as-a-prop` |  Fixed |
| `use.md:315` | Server Component | `/reference/react/components#server-components` | Missing anchor | `/reference/rsc/server-components` |  Fixed |
| `useEffect.md:899` | if you use a framework, | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `useEffect.md:1051` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `useEffect.md:1736` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `useInsertionEffect.md:136` | non-blocking update, | `/reference/react/useTransition#marking-a-state-update-as-a-non-blocking-transition` | Wrong anchor | `/reference/react/useTransition#perform-non-blocking-updates-with-actions` |  Fixed |
| `createPortal.md:53` | key. | `/learn/rendering-lists/#keeping-list-items-in-order-with-key` | Trailing slash | `/learn/rendering-lists#keeping-list-items-in-order-with-key` |  Fixed |
| `react-dom/index.md:24` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `react-dom/index.md:51` | `unmountComponentAtNode` | `/reference/react-dom/unmountComponentAtNode` | Missing file | `https://18.react.dev/reference/react-dom/unmountComponentAtNode` |  Fixed |
| `preinit.md:7` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `preinitModule.md:7` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `preload.md:7` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| `preloadModule.md:7` | React-based frameworks | `/learn/start-a-new-react-project` | Missing file | `/learn/creating-a-react-app` |  Fixed |
| 11 component files | common element props. | `/reference/react-dom/components/common#props` | Wrong anchor | `/reference/react-dom/components/common#common-props` |  Fixed |
| `server/index.md:7` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `static/index.md:7` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file + anchor | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `introducing-react-dev.md:45` | API Reference | `/reference` | Missing index | `/reference/react` |  Fixed |
| `introducing-react-dev.md:610` | Alternatives | `/reference/react-dom/findDOMNode#alternatives` | Missing file | `https://18.react.dev/reference/react-dom/findDOMNode#alternatives` |  Fixed |
| `react-labs-march-2023.md:34` | Next.js App Router | `/learn/start-a-new-react-project#nextjs-app-router` | Missing file + anchor | `/learn/creating-a-react-app#nextjs-app-router` |  Fixed |
| `react-labs-march-2023.md:95` | Next.js App Router | `/learn/start-a-new-react-project#nextjs-app-router` | Missing file + anchor | `/learn/creating-a-react-app#nextjs-app-router` |  Fixed |
| `react-labs-february-2024.md:110` | Sathya Gunasekaran | `/community/team#sathya-gunasekaran` | Contributor link | `https://github.com/gsathya` |  Fixed |
| `react-19-upgrade-guide.md:132` | improved how errors are handled | `/blog/2024/04/25/react-19#error-handling` | Missing file + anchor | `/blog/2024/12/05/react-19#error-handling` |  Fixed |
| `react-19-upgrade-guide.md:502` | `ref` as a prop | `/blog/2024/04/25/react-19#ref-as-a-prop` | Missing file + anchor | `/blog/2024/12/05/react-19#ref-as-a-prop` |  Fixed |
| `react-19.md:358` | Full-stack React Architecture | `/learn/start-a-new-react-project#which-features-make-up-the-react-teams-full-stack-architecture-vision` | Missing file + anchor | `/learn/creating-a-react-app#which-features-make-up-the-react-teams-full-stack-architecture-vision` |  Fixed |
| `react-19.md:392` | React Server Actions | `/reference/rsc/server-actions` | Missing file | `/reference/rsc/server-functions` |  Fixed |
| `view-transitions-activity.md:2498` | view transition classes | `/reference/react/ViewTransition#view-transition-classes` | Missing anchor | `/reference/react/ViewTransition#view-transition-class` |  Fixed |
| `rsc/directives.md:13` | bundlers compatible with React Server Components | `/learn/start-a-new-react-project#full-stack-frameworks` | Missing file | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `rsc/server-components.md:7` | React Server Components | `/learn/start-a-new-react-project#full-stack-frameworks` | Missing file | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `rsc/use-client.md:44` | compatible bundlers | `/learn/start-a-new-react-project#full-stack-frameworks` | Missing file | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `react-dom/client/createRoot.md:212` | using a framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `react-dom/client/index.md:7` | framework | `/learn/start-a-new-react-project#production-grade-react-frameworks` | Missing file | `/learn/creating-a-react-app#full-stack-frameworks` |  Fixed |
| `rsc/server-functions.md:198` | `useActionState` | `/reference/react-dom/hooks/useFormState` | Missing file | `/reference/react/useActionState` |  Fixed |
| `rsc/server-functions.md:222` | `useActionState` | `/reference/react-dom/hooks/useFormState` | Missing file | `/reference/react/useActionState` |  Fixed |
| `rsc/use-server.md:98` | serializable props | `/reference/rsc/use-client#passing-props-from-server-to-client-components` | Missing anchor | `/reference/rsc/use-client#serializable-types` |  Fixed |
| `react-dom/components/common.md:919` | check out more examples. | `/reference/react/useRef#examples-dom` | Missing anchor | `/reference/react/useRef#usage` |  Fixed |
| `react-dom/components/form.md:233` | reference documentation | `/reference/react/hooks/useOptimistic` | Missing file | `/reference/react/useOptimistic` |  Fixed |


```
$ yarn deadlinks

yarn run v1.22.22
$ node scripts/deadLinkChecker.js
Checking 177 markdown files...
Fetched 552 React error codes


✓ All 1552 links are valid!

  Done in 1.07s.
```
2025-07-18 17:19:53 -04:00
2023-03-20 23:15:12 +00:00
2025-05-16 14:22:52 -04:00
2025-07-18 17:19:40 -04:00
2025-07-18 17:19:53 -04:00
2023-03-18 22:35:53 +00:00
2024-04-26 11:56:47 -04:00
2023-03-18 22:35:53 +00:00
2023-03-18 22:35:53 +00:00
2024-05-01 15:23:53 -04:00
2025-04-21 16:15:49 -04:00
2025-07-18 17:19:40 -04:00
2025-02-17 17:54:29 -05:00
2025-07-18 17:19:40 -04:00

react.dev

This repo contains the source code and documentation powering react.dev.

Getting started

Prerequisites

  1. Git
  2. Node: any version starting with v16.8.0 or greater
  3. Yarn: See Yarn website for installation instructions
  4. A fork of the repo (for any contributions)
  5. A clone of the react.dev repo on your local machine

Installation

  1. cd react.dev to go into the project root
  2. yarn to install the website's npm dependencies

Running locally

  1. yarn dev to start the development server (powered by Next.js)
  2. open http://localhost:3000 to open the site in your favorite browser

Contributing

Guidelines

The documentation is divided into several sections with a different tone and purpose. If you plan to write more than a few sentences, you might find it helpful to get familiar with the contributing guidelines for the appropriate sections.

Create a branch

  1. git checkout main from any folder in your local react.dev repository
  2. git pull origin main to ensure you have the latest main code
  3. git checkout -b the-name-of-my-branch (replacing the-name-of-my-branch with a suitable name) to create a branch

Make the change

  1. Follow the "Running locally" instructions
  2. Save the files and check in the browser
  3. Changes to React components in src will hot-reload
  4. Changes to markdown files in content will hot-reload
  5. If working with plugins, you may need to remove the .cache directory and restart the server

Test the change

  1. If possible, test any visual changes in all latest versions of common browsers, on both desktop and mobile.
  2. Run yarn check-all. (This will run Prettier, ESLint and validate types.)

Push it

  1. git add -A && git commit -m "My message" (replacing My message with a commit message, such as Fix header logo on Android) to stage and commit your changes
  2. git push my-fork-name the-name-of-my-branch
  3. Go to the react.dev repo and you should see recently pushed branches.
  4. Follow GitHub's instructions.
  5. If possible, include screenshots of visual changes. A preview build is triggered after your changes are pushed to GitHub.

Translation

If you are interested in translating react.dev, please see the current translation efforts here.

License

Content submitted to react.dev is CC-BY-4.0 licensed, as found in the LICENSE-DOCS.md file.

Description
The React documentation website
Readme 256 MiB
Languages
TypeScript 59.1%
JavaScript 34.6%
CSS 6.1%
HTML 0.2%