Visitar URL original
docs: fix typos and correctness issues in App Router docs by sokra · Pull Request #97823 · vercel/next.js · GitHub
Skip to content

docs: fix typos and correctness issues in App Router docs - #97823

Merged
sokra merged 1 commit into
canaryfrom
codex/docs-app-typo-correctness-review
Aug 25, 2026
Merged

sokra merged 1 commit into
canaryfrom
codex/docs-app-typo-correctness-review

Conversation

@sokra

@sokra sokra commented Aug 24, 2026

Copy link
Copy Markdown
Member

Summary

A systematic review pass over the App Router documentation (docs/01-app, 281 MDX files) fixing clear-cut typos, grammar issues, and technical inaccuracies — code samples, file names, and API signatures that had drifted from the implementation in packages/next/src.

The review ran four passes: an automated spell check with a triaged allowlist, targeted grammar-pattern searches, structural checks (frontmatter, code fences, link targets), and a technical-accuracy pass over all getting-started pages plus high-traffic API reference pages, with every suspected inaccuracy verified against the source before editing. Only unambiguous issues were fixed; anything debatable was deliberately left alone (e.g. the /aboot route in the typedRoutes docs is an intentional invalid-route example, and the CLI docs table intentionally mirrors the actual --help output).

Notable fixes:

  • JSX examples now await params, matching the Promise-based API and their TypeScript counterparts
  • generateStaticParams() is now exported in samples so the convention actually takes effect
  • <Link prefetch> props table includes "auto", matching the boolean | "auto" | null type in link.tsx
  • Navigator.geolocation casing, the canonical react.dev "use client" link, and a missing Link import in the typedRoutes docs
  • Mismatched or wrong filename= labels in TS/JS switcher pairs (form.mdx, mutating-data.mdx, css.mdx) and a wrong generateStaticParams anchor target
  • ESLint monorepo example registers the plugin as @next/next so the documented rule prefixes resolve
  • Spelling/grammar: emphaize, invokations, behaviour → American spelling, "setup" → "set up" as a verb (5×), "a RSC" → "an RSC", NextJS → Next.js, a stray comma, and "a opengraph-image.tsx" article plus its folder path

Verification

  • cspell over all 281 files in docs/01-app: 0 issues outside a reviewed allowlist of product names, API identifiers, and intentional example strings
  • prettier --check (3.6.2, repo config): passes on all 19 changed files
  • Grammar-pattern and structure greps: clean
  • Technical claims cross-checked against packages/next/src and packages/eslint-plugin-next
  • Docs-only change; no runtime code touched

Fix spelling (emphaize, invokations, behaviour), grammar (setup vs
set up, a RSC vs an RSC, stray comma), and technical accuracy issues
found while reviewing docs/01-app:

- await params in JSX examples (params is a Promise)
- export generateStaticParams so the convention takes effect
- navigator.geolocation casing and react.dev use-client link
- add missing Link import in typedRoutes example
- fix mismatched filename labels in TS/JS switcher pairs
- Link prefetch prop type includes "auto" per link.tsx
- register ESLint plugin as '@next/next' in monorepo example
- fix generateStaticParams empty-array anchor target

Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

Tests Passed

Commit: 866c654

@sokra
sokra requested a review from eps1lon August 24, 2026 18:38
@github-actions

github-actions Bot commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

Stats skipped

Commit: 866c654
View workflow run

@sokra
sokra requested a review from icyJoseph August 24, 2026 18:38
files: ['**/*.{js,jsx,ts,tsx}'],
plugins: {
next: eslintNextPlugin,
'@next/next': eslintNextPlugin,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that correct?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes — verified against the plugin source:

  • @next/eslint-plugin-next's own flat-config presets register the plugin under '@next/next' (packages/eslint-plugin-next/src/index.ts, in both the recommended and core-web-vitals configs), and every rule is named @next/next/<rule> (see recommendedRules).
  • With the previous next: key, the rule names used throughout this page (e.g. @next/next/no-img-element in the rules table and the "Disabling rules" example) would not resolve for a user copying this monorepo setup.
  • The settings.next.rootDir block is unaffected either way: the plugin reads context.settings.next directly, independent of the plugin registration key (src/utils/get-root-dirs.ts).

@sokra
sokra marked this pull request as ready for review August 25, 2026 09:09
@sokra
sokra merged commit 3d57c6e into canary Aug 25, 2026
71 checks passed
@sokra
sokra deleted the codex/docs-app-typo-correctness-review branch August 25, 2026 10:12
icyJoseph added a commit that referenced this pull request Aug 25, 2026
Correctness pass — following
#97823
icyJoseph pushed a commit that referenced this pull request Aug 25, 2026
## Summary

A systematic review pass over the App Router documentation
(`docs/01-app`, 281 MDX files) fixing clear-cut typos, grammar issues,
and technical inaccuracies — code samples, file names, and API
signatures that had drifted from the implementation in
`packages/next/src`.

The review ran four passes: an automated spell check with a triaged
allowlist, targeted grammar-pattern searches, structural checks
(frontmatter, code fences, link targets), and a technical-accuracy pass
over all getting-started pages plus high-traffic API reference pages,
with every suspected inaccuracy verified against the source before
editing. Only unambiguous issues were fixed; anything debatable was
deliberately left alone (e.g. the `/aboot` route in the typedRoutes docs
is an *intentional* invalid-route example, and the CLI docs table
intentionally mirrors the actual `--help` output).

Notable fixes:

- JSX examples now `await params`, matching the Promise-based API and
their TypeScript counterparts
- `generateStaticParams()` is now exported in samples so the convention
actually takes effect
- `<Link prefetch>` props table includes `"auto"`, matching the `boolean
| "auto" | null` type in `link.tsx`
- `Navigator.geolocation` casing, the canonical react.dev `"use client"`
link, and a missing `Link` import in the typedRoutes docs
- Mismatched or wrong `filename=` labels in TS/JS switcher pairs
(`form.mdx`, `mutating-data.mdx`, `css.mdx`) and a wrong
`generateStaticParams` anchor target
- ESLint monorepo example registers the plugin as `@next/next` so the
documented rule prefixes resolve
- Spelling/grammar: `emphaize`, `invokations`, `behaviour` → American
spelling, "setup" → "set up" as a verb (5×), "a RSC" → "an RSC",
`NextJS` → `Next.js`, a stray comma, and "a `opengraph-image.tsx`"
article plus its folder path

## Verification

- `cspell` over all 281 files in `docs/01-app`: 0 issues outside a
reviewed allowlist of product names, API identifiers, and intentional
example strings
- `prettier --check` (3.6.2, repo config): passes on all 19 changed
files
- Grammar-pattern and structure greps: clean
- Technical claims cross-checked against `packages/next/src` and
`packages/eslint-plugin-next`
- Docs-only change; no runtime code touched

<!-- NEXT_JS_LLM -->

<!-- fleet eeae4385-18f5-406d-915e-986961503ed2 -->

Co-authored-by: vercel-fleet-prod[bot] <318278635+vercel-fleet-prod[bot]@users.noreply.github.com>
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
(cherry picked from commit 3d57c6e)
icyJoseph added a commit that referenced this pull request Aug 25, 2026
Correctness pass — following
#97823

(cherry picked from commit 03a0969)
icyJoseph added a commit that referenced this pull request Aug 25, 2026
## Summary

- docs: remove experimental note from runtime prefetching (#96615)
- docs: proxy event argument (#96435)
- docs: correction to dynamicParams migration (#96624)
- docs: quote the dynamicParams build error in a blockquote (#96633)
- docs: use relative doc links in instant-navigation error pages
(#96672)
- docs: document ! exclusion and src/ prefix for --debug-build-paths
(#96703)
- docs: instant navigation quick start with an adoption prompt (#96663)
- docs (Skills): stop assuming app/ at the root and port 3000 (#96696)
- docs: present each Skill as steps in the AI agents guide (#96751)
- docs: update redirected links to current targets (#96723)
- docs: add authentication with Cache Components guide and iron-session
example (#95802)
- docs: link View Transitions skill on skills.sh and clarify the example
prompt (#96863)
- Add a `turbopackChunking` documentation page for pages router (#96698)
- docs: add `export const dynamic = 'force-static'` to Route Handlers
example on Static Exports (#96964)
- docs: runtime prefetching -> optimizing prefetching (#96934)
- Fix typo in Data Access Layer section (#87202)
- docs: rename repo to repository for consistency (#87849)
- docs(mdx): fix package name in .md handling section (#97131)
- docs: fix Link prefetch grammar and Client Components wording (#97132)
- docs: align Cache Components authentication guide title (#97143)
- docs: create client-side fetching guide (#96341)
- docs: clarify client cache freshness after hydration (#97180)
- docs: server client and directives (#96145)
- Update authentication diagram URL (#97320)
- docs: align SPA guide reducer example with React conventions (#97341)
- docs: app router reference accuracy (#97477)
- docs: mention Valibot as validation library option in forms guides
(#97468)
- docs: warn when catching permanentRedirect (#97496)
- [docs] fix: grammar typos in linking and navigating guide (#95544)
- docs: rename Vercel Edge Config to Global Config in redirecting guide
(#97456)
- docs: document metadata pagination field (#95509)
- docs: outlining and lcp (#96942)
- docs: adjust interactive app guide (#97558)
- docs: generateMetadata values should be serializable with use cache
(#97551)
- Fix stale cross-references in skills/ (#97566)
- Improve Cache Components sync IO migration guidance (#97572)
- docs: Explicit cache output description (#97548)
- docs: document deploymentId build ID override and Pages Router skew in
16.2 (#97645)
- docs: drop stale Route Handlers restriction from `use cache: private`
(docs part of #97349)
- docs: clarify beforeInteractive placement for root layouts (#97643)
- docs: Adapters entry page lists its children pages twice (#97677)
- docs: correct the upper stale bound for App Shell exclusion in
cacheLife (#97653)
- Improve Partial Prefetching adoption checks (#97637)
- docs: fix parallelRouteKey parameter name in
useSelectedLayoutSegment(s) (#97710)
- docs(adapters): document assetsHashes and routing.middlewareMatchers
(#96536)
- docs: note that response headers must be set before calling handle()
in a custom server (#97693)
- Document catchError for the Pages Router (#97748)
- docs: fix typos and correctness issues in App Router docs (#97823)
- docs: param access on use-server (#97865)
- docs: clarify revalidateTag profile expire semantics (#97836)

---------

Co-authored-by: Aurora Scharff <66901228+aurorascharff@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Rich Haines <hello@richardhaines.dev>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
Co-authored-by: Aurora Scharff <aurora.sofie@gmail.com>
Co-authored-by: Sam Poder <sampoder@berkeley.edu>
Co-authored-by: Masashi Kawafuji <masashikawafuji@proton.me>
Co-authored-by: Akseli Palmer <akseli@toddsden.com>
Co-authored-by: Tim Neutkens <tim@timneutkens.nl>
Co-authored-by: Jarren <sanjose.jarren@gmail.com>
Co-authored-by: Marcos Hernanz <96699542+marcoshernanz@users.noreply.github.com>
Co-authored-by: Pavan Shinde <pavann97@gmail.com>
Co-authored-by: Reza Karimzadeh <r.karimzadeh1998@gmail.com>
Co-authored-by: Fabian Hiller <hillerfabian11@gmail.com>
Co-authored-by: David Alexandru Ilie <david@davidilie.com>
Co-authored-by: Sean Beirnes <127370575+seanbeirnes@users.noreply.github.com>
Co-authored-by: Rich Haines <22930449+molebox@users.noreply.github.com>
Co-authored-by: KAM <biukam.w@gmail.com>
Co-authored-by: Jiwon Choi <devjiwonchoi@gmail.com>
Co-authored-by: Jude Gao <jude.gao@vercel.com>
Co-authored-by: Said Nasser <sdnssr001@gmail.com>
Co-authored-by: Eddy (Frontend Engineer) <101346918+leejpsd@users.noreply.github.com>
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
Co-authored-by: vercel-fleet-prod[bot] <318278635+vercel-fleet-prod[bot]@users.noreply.github.com>
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
@github-actions github-actions Bot added the locked label Sep 8, 2026
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Sep 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants