Skip to content

Fix deadlinks #7880

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 18, 2025
Merged

Fix deadlinks #7880

merged 2 commits into from
Jul 18, 2025

Conversation

poteto
Copy link
Member

@poteto poteto commented Jul 18, 2025

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.

Stack created with Sapling. Best reviewed with ReviewStack.

Copy link

github-actions bot commented Jul 18, 2025

Size changes

📦 Next.js Bundle Analysis for react-dev

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

poteto added 2 commits July 18, 2025 17:12
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.

```
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.
```
@poteto poteto merged commit d52b3ec into main Jul 18, 2025
11 checks passed
@poteto poteto deleted the pr7880 branch July 18, 2025 21:19
poteto added a commit that referenced this pull request Jul 18, 2025
Original commit changeset: d52b3ec

Revert this so we can just fix the real deadlinks.
poteto added a commit that referenced this pull request Jul 21, 2025
Original commit changeset: d52b3ec

Revert this so we can just fix the real deadlinks.
poteto added a commit that referenced this pull request Jul 21, 2025
* Revert "Fix deadlinks (#7880)"

Original commit changeset: d52b3ec

Revert this so we can just fix the real deadlinks.

* Update deadlinks script to take into account redirects

Also check if a redirect exists before erroring.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants