Skip to content

Upgrade docs site to Next 16 / Fumadocs 16, clear all audit findings#57

Merged
koko1123 merged 1 commit into
mainfrom
chore/docs-dependency-security
Jun 10, 2026
Merged

Upgrade docs site to Next 16 / Fumadocs 16, clear all audit findings#57
koko1123 merged 1 commit into
mainfrom
chore/docs-dependency-security

Conversation

@koko1123

@koko1123 koko1123 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

What

Upgrades the docs site from Next 15.5.15 / Fumadocs 15.8.5 to Next 16.2.9 / Fumadocs 16.9.3 and clears every pnpm audit finding (previously 16 vulnerabilities, 7 high, per the dependabot alerts on main).

Why

The pinned Next 15.5.15 carried multiple high-severity advisories (DoS via Server Components, middleware bypass, SSRF in WebSocket upgrades, cache-exhaustion CVE-2026-27980 fixed only in Next 16). PostCSS sat below the 8.5.10 XSS patch. This also supersedes dependabot #52.

How

  • next 15.5.15 → 16.2.9, eslint-config-next aligned to 16.2.9
  • fumadocs-core/fumadocs-ui → 16.9.3, fumadocs-mdx → 15.0.11 (Next 16 peer support)
  • src/lib/source.ts now imports the new generated .source/server entry (fumadocs-mdx 14+ layout); tsconfig alias updated
  • ESLint config migrated to eslint-config-next's native flat-config exports — FlatCompat throws a circular-structure error against v16 — and the now-unused @eslint/eslintrc was removed
  • postcss floor raised to ^8.5.15, with pnpm overrides for the postcss copy bundled inside next (<8.5.10) and brace-expansion@5 (<5.0.6)

Verification

  • pnpm build: all 17 docs pages prerender (SSG)
  • pnpm lint and tsc --noEmit: clean
  • pnpm audit: No known vulnerabilities found (was 2 low / 7 moderate / 7 high)
  • Vercel preview deploy on this PR is the end-to-end check

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Chores
    • Upgraded documentation framework and Next.js dependencies to latest versions for improved performance and stability.
    • Enhanced TypeScript configuration for better development experience.
    • Improved build configuration and tooling setup.

…findings

The docs site was on Next 15.5.15 with 16 known vulnerabilities (7 high),
including several DoS and SSRF advisories patched in later releases and
an image-cache exhaustion CVE fixed only in Next 16.

- next 15.5.15 -> 16.2.9, eslint-config-next aligned
- fumadocs-core/ui 15.8.5 -> 16.9.3, fumadocs-mdx 12.0.3 -> 15.0.11
- source loader updated to the new generated .source/server entry
- eslint config migrated to eslint-config-next's native flat configs
  (FlatCompat breaks against v16), dropping the @eslint/eslintrc shim
- postcss floor raised to ^8.5.15 plus overrides for the postcss copy
  pinned inside next and brace-expansion@5, leaving pnpm audit clean

Verified: pnpm build (all 17 pages prerender), pnpm lint, tsc --noEmit,
pnpm audit clean.
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
eth-zig Ready Ready Preview, Comment Jun 10, 2026 1:34am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR modernizes the documentation site configuration across multiple coordinated changes: TypeScript path aliasing is updated to wildcard matching for @/.source/*, the source module import is redirected to a server submodule, Fumadocs and Next.js dependencies are bumped to newer major versions with pnpm override constraints, ESLint config is refactored to directly spread Next.js presets, and TypeScript includes are expanded to cover Next.js dev types.

Changes

Documentation System Upgrade

Layer / File(s) Summary
Module Path Aliasing and Source Import
docs/tsconfig.json, docs/src/lib/source.ts
TypeScript path aliasing updated from @/.source./.source/index.ts to @/.source/*./.source/* wildcard matching. Source module import refactored to import docs from @/.source/server instead of @/.source.
TypeScript Compiler Configuration
docs/tsconfig.json
Expanded TypeScript include globs to add .next/dev/types/**/*.ts alongside existing .next/types/**/*.ts to cover Next.js dev-generated type definitions.
Dependency Versions and Package Manager Configuration
docs/package.json
Updated fumadocs-core, fumadocs-mdx, fumadocs-ui, next, eslint-config-next, and postcss to newer major versions. Added pnpm.overrides section constraining postcss and brace-expansion versions.
Configuration File Structure Updates
docs/eslint.config.mjs, docs/postcss.config.mjs
Refactored ESLint config from FlatCompat/extends pattern to direct imports and spreading of eslint-config-next/core-web-vitals and eslint-config-next/typescript presets. Converted PostCSS config from inline default export to named config constant export.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Hop skip and bound through configs new,
Path aliases changed and imports too,
Dependencies dance in versions higher,
ESLint and PostCSS spark the fire! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Upgrade docs site to Next 16 / Fumadocs 16, clear all audit findings' accurately and specifically describes the main objective of the PR—upgrading documentation site dependencies and resolving security vulnerabilities.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/docs-dependency-security

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/package.json`:
- Around line 13-17: Update the docs and codebase to account for Next.js 16
breaking changes: review and update any middleware.ts to proxy.ts (and adjust
exports/registration), audit request handlers (e.g., any server/edge functions,
getServerSideProps-like handlers or custom Request/Response code) to ensure
async APIs are properly awaited (add missing await where Request/Response
streaming or async body parsing is used), and verify any usages of Next-specific
middleware or edge headers follow the Next 16 API surface; focus on files
referencing middleware.ts, proxy.ts, server/edge request handlers, and any
functions that call fetch/Request/Response without awaiting their async
operations.

In `@docs/tsconfig.json`:
- Line 20: The tsconfig option "jsx" is set to "react-jsx" but Next.js 16
expects "preserve"; update the compilerOptions.jsx value from "react-jsx" to
"preserve" in docs/tsconfig.json (or instead switch to using a separate
IDE/type-checking tsconfig and reference it via typescript.tsconfigPath) so
Next's compiler handling remains intact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6ad5cb7b-73b4-4c29-b123-d67296774163

📥 Commits

Reviewing files that changed from the base of the PR and between 6b57f35 and 5804a48.

⛔ Files ignored due to path filters (1)
  • docs/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • docs/eslint.config.mjs
  • docs/package.json
  • docs/postcss.config.mjs
  • docs/src/lib/source.ts
  • docs/tsconfig.json

Comment thread docs/package.json
Comment on lines +13 to +17
"fumadocs-core": "16.9.3",
"fumadocs-mdx": "15.0.11",
"fumadocs-ui": "16.9.3",
"lucide-react": "^0.544.0",
"next": "15.5.15",
"next": "16.2.9",

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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify Next.js 16 + React 19 + Fumadocs 16 compatibility

# Check Next.js 16.2.9 peer dependencies
echo "=== Next.js 16.2.9 peer dependencies ==="
npm view next@16.2.9 peerDependencies

# Check Fumadocs 16.9.3 peer dependencies
echo "=== Fumadocs core 16.9.3 peer dependencies ==="
npm view fumadocs-core@16.9.3 peerDependencies

echo "=== Fumadocs UI 16.9.3 peer dependencies ==="
npm view fumadocs-ui@16.9.3 peerDependencies

echo "=== Fumadocs MDX 15.0.11 peer dependencies ==="
npm view fumadocs-mdx@15.0.11 peerDependencies

# Check for any reported compatibility issues
echo "=== Searching npm for Next 16 + React 19 compatibility notes ==="
npm view next@16.2.9 | grep -i react

Repository: StrobeLabs/eth.zig

Length of output: 1505


🌐 Web query:

Next.js 16 release notes and breaking changes from Next.js 15

💡 Result:

Next.js 16, released on October 22, 2025 [1][2], introduces significant architectural changes and breaking updates compared to Next.js 15. The latest stable version as of June 10, 2026, is 16.2.7 [3][4]. Key Breaking Changes and Updates: Async Request APIs: Next.js 16 fully removes the temporary synchronous compatibility for request APIs introduced in version 15 [5][6]. Developers must now await the following APIs, which are provided as promises: cookies, headers, draftMode, and parameters (params, searchParams) in layouts, pages, and route handlers [7][8][6]. Metadata image routes (e.g., opengraph-image) and sitemap functions also receive params or id as promises [5][7][6]. Architecture and Bundling: Turbopack is now the default bundler for both development and production, replacing Webpack [9]. While an escape hatch exists for migration via --webpack flags, the long-term goal is a full transition to Turbopack [9]. Routing and Middleware: The middleware.ts file is deprecated and renamed to proxy.ts to better reflect its function at the network boundary [5][8][9]. Caching Model: The framework has evolved its caching strategy, replacing previous experimental flags (like experimental.ppr, dynamicIO, and useCache) with a consolidated Cache Components programming model [8][9]. Configuration and Removals: - Runtime configuration (publicRuntimeConfig, serverRuntimeConfig) is removed; developers should use standard.env environment variables [8]. - Several next/image defaults were changed, including minimumCacheTTL (default bumped from 1 min to 4 hours) and imageSizes [1][7]. - Maximum redirects for images are now capped at 3 by default [8]. - The next/legacy/image component and images.domains configuration are deprecated [5][8]. - ESLint flat config is now the default [1][7]. - Automatic scroll-behavior: smooth is enabled by default; users can opt out via data attributes [8]. For a full migration, consult the official Next.js 16 Upgrade Guide [7], which provides specific codemods and manual steps for handling these structural shifts.

Citations:


docs/package.json: peer-deps are compatible with Next.js 16 + React 19 + Fumadocs 16, but Next 16 migrations still need review

Peer dependency ranges match:

  • next@16.2.9 supports react/react-dom ^19.0.0
  • fumadocs-core@16.9.3 / fumadocs-ui@16.9.3 require next: 16.x.x and react/react-dom: ^19.2.0
  • fumadocs-mdx@15.0.11 supports next: ^15.3.0 || ^16.0.0 and react: ^19.2.0 (and fumadocs-core: ^16.7.0)

Still ensure the codebase handles Next.js 16 breaking changes (e.g., async request APIs needing await, and middleware.tsproxy.ts), since that’s the likely remaining source of breakage beyond peer dependency compatibility.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/package.json` around lines 13 - 17, Update the docs and codebase to
account for Next.js 16 breaking changes: review and update any middleware.ts to
proxy.ts (and adjust exports/registration), audit request handlers (e.g., any
server/edge functions, getServerSideProps-like handlers or custom
Request/Response code) to ensure async APIs are properly awaited (add missing
await where Request/Response streaming or async body parsing is used), and
verify any usages of Next-specific middleware or edge headers follow the Next 16
API surface; focus on files referencing middleware.ts, proxy.ts, server/edge
request handlers, and any functions that call fetch/Request/Response without
awaiting their async operations.

Comment thread docs/tsconfig.json
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",

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.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for Next.js 16 JSX transform documentation or examples in the codebase
rg -n -C3 --type=json '"jsx"' --glob '!node_modules' --glob '!.next'

Repository: StrobeLabs/eth.zig

Length of output: 398


🌐 Web query:

What JSX compiler option should be used in tsconfig.json for Next.js 16 with React 19?

💡 Result:

For a Next.js 16 project, the recommended jsx compiler option in tsconfig.json is "preserve" [1][2][3]. While you may see recommendations to use "react-jsx" to enable the automatic runtime for type-checking purposes [4][5], Next.js is designed to manage the JSX transformation itself using its own optimized compiler (SWC) [1][2][3]. When you run next dev or next build, Next.js will automatically detect and, if necessary, reset the jsx option in your tsconfig.json to "preserve" to ensure it maintains control over the JSX transformation process [1][2]. If you are experiencing type-checking errors in your editor (such as warnings about missing React imports when using JSX), these are typically issues with IDE configuration or TypeScript versioning rather than a requirement to change the jsx setting [1][5]. To resolve such issues, ensure your TypeScript version is up to date and that your project dependencies, particularly @types/react and @types/react-dom, are correctly aligned with the version of React (React 19) you are using [6]. Next.js automatically configures the environment to handle JSX correctly, and manually overriding the jsx option is generally discouraged as it may be overwritten by the framework [1][2].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the relevant tsconfig section around the jsx option
sed -n '1,120p' docs/tsconfig.json | cat -n

# Find any other tsconfig files that might be used by Next.js (root or app/package dirs)
find . -maxdepth 4 -name 'tsconfig*.json' -print

# Check if docs/tsconfig.json is referenced anywhere
rg -n --glob '!node_modules/**' -S 'docs/tsconfig\.json|extends\s*:\s*.*tsconfig\.json' .

Repository: StrobeLabs/eth.zig

Length of output: 1227


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) List all tsconfig files in the repo (small enough)
find . -name 'tsconfig*.json' -print

# 2) Check if any tsconfig extends docs/tsconfig.json (or references it)
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S \
  'extends\s*:\s*["\047].*tsconfig.*["\047]|docs/tsconfig\.json|tsconfig\.json' .

# 3) Check common entrypoints for tsconfig usage
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S \
  '"tsconfig"' package.json next.config.* **/*.{js,ts,mjs,cjs} . || true

Repository: StrobeLabs/eth.zig

Length of output: 360


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) List all tsconfig files
find . -name 'tsconfig*.json' -print

# 2) Direct references to docs/tsconfig.json
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S 'docs/tsconfig\.json' . || true

# 3) Look for Next.js TypeScript config path overrides
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S 'tsconfigPath' . || true

# 4) Show any Next config files
find . -maxdepth 4 \( -name 'next.config.*' -o -name '*next*.config.*' \) -print

Repository: StrobeLabs/eth.zig

Length of output: 106


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show next config (first ~200 lines)
sed -n '1,220p' docs/next.config.mjs | cat -n

# Search for tsconfig references in repo (excluding node_modules/.next)
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S 'tsconfig\.json|tsconfigPath|jsx\s*:' .

# Search for Next's "typescript" config block
rg -n --glob '!node_modules/**' --glob '!**/.next/**' -S 'typescript\s*:' docs/next.config.mjs . || true

Repository: StrobeLabs/eth.zig

Length of output: 2992


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# List package.json files
find . -name 'package.json' -print

# If docs/package.json exists, show Next/React versions
if [ -f docs/package.json ]; then
  echo "---- docs/package.json ----"
  sed -n '1,220p' docs/package.json | cat -n
fi

# Look for Next version in lockfile too (ts search avoids huge output)
rg -n 'next@|next":' docs/pnpm-lock.yaml | head -n 50 || true

# Search for any other tsconfig.json in Next app roots (in case of monorepo)
find . -maxdepth 4 -name 'tsconfig.json' -print

Repository: StrobeLabs/eth.zig

Length of output: 5079


🌐 Web query:

Next.js 16 tsconfig compilerOptions jsx preserve react-jsx automatic runtime SWC resets tsconfig jsx option

💡 Result:

In Next.js, the compilerOptions.jsx setting in tsconfig.json dictates how the TypeScript compiler handles JSX during type checking, while Next.js itself uses its own optimized SWC (Speedy Web Compiler) pipeline to transform JSX for the browser [1][2][3]. As of Next.js 16, the recommended and default jsx configuration in tsconfig.json is react-jsx [4]. This setting enables the React automatic runtime for type checking, which is required to correctly validate JSX without needing to manually import React in every file [5][4]. Regarding the behavior of Next.js automatically "resetting" or "overwriting" your tsconfig.json: 1. Historical Context: In older versions of Next.js, the framework would often automatically enforce "jsx": "preserve" in your tsconfig.json [6][2]. This was because Next.js managed the transformation internally via SWC/Babel, and setting the tsconfig to preserve prevented the TypeScript compiler from attempting its own JSX transformation, which could conflict with the build pipeline [2]. 2. Current Behavior: With the shift toward modern standards and improved integration, recent versions (including Next.js 16) now prefer and may enforce react-jsx [4]. When Next.js detects TypeScript in your project, it may automatically modify your tsconfig.json to ensure mandatory options—such as jsx, moduleResolution, and isolatedModules—are set to values compatible with the Next.js architecture [4][6][7]. If you find your tsconfig.json being repeatedly reverted, it is typically because Next.js has identified a configuration mismatch that prevents it from guaranteeing a successful build [6]. If you need a specific configuration for other tools (like Jest or custom scripts) that conflicts with Next.js's requirements, the recommended approach is to maintain a base tsconfig.json that Next.js manages, and use a separate, extended tsconfig file for those specific tools, or rely on tool-specific configuration files (e.g., jest.config.js) to handle the necessary overrides [2][8].

Citations:


🌐 Web query:

Next.js 16 tsconfig compilerOptions jsx preserve react-jsx what does Next enforce

💡 Result:

In Next.js 16, the standard tsconfig.json template typically specifies "jsx": "preserve" [1]. Next.js manages the transformation of JSX internally using its own optimized build process, which enables the automatic JSX runtime [2][3]. The key distinction regarding jsx options in tsconfig.json is between how TypeScript handles type checking and how Next.js handles code transformation [4]: 1. Next.js Requirement: Next.js prefers "jsx": "preserve" in your tsconfig.json because it wants to retain the JSX syntax so that its own internal compiler (or Turbopack) can handle the transformation [2][3]. If you explicitly change this to "react-jsx" to satisfy IDE warnings, Next.js may overwrite or warn you about this setting because it implements its own optimized transform [2][3]. 2. TypeScript Runtime: Despite the "preserve" setting, Next.js uses the automatic JSX runtime for the final output [4][3]. 3. IDE/Type Checking: Some TypeScript versions or IDE configurations may trigger errors suggesting you use "react-jsx" (e.g., complaining about the need for an explicit import React for fragments) [2]. While setting "jsx": "react-jsx" in tsconfig.json solves these type-checking issues, it conflicts with the Next.js recommended configuration [2][4]. In summary, Next.js generally enforces or recommends "jsx": "preserve" to ensure the build pipeline controls the JSX transformation [2][3]. If you encounter IDE errors while using "preserve", ensure your TypeScript environment and dependencies are up to date, as modern Next.js environments are designed to handle the automatic runtime during the build phase regardless of the "preserve" setting [4][3].

Citations:


🌐 Web query:

next 16.2.9 automatically resets tsconfig jsx option preserve

💡 Result:

Next.js intentionally and automatically sets the jsx option in your tsconfig.json to "preserve" [1][2]. This is not a bug unique to version 16.2.9, but rather a long-standing behavior where Next.js enforces its own optimized JSX transform [1][3][4]. When you run Next.js (e.g., via next dev or next build), the framework checks your tsconfig.json and updates mandatory fields to ensure they align with Next.js requirements [1][2]. If it detects that jsx is set to anything other than "preserve", it will overwrite it and display a message in your terminal noting the change [1][5]. If you are experiencing editor warnings (such as issues with React auto-imports or TypeScript validation) because of this setting, it is generally recommended to address the issue within your development environment rather than by modifying the tsconfig.json file, as Next.js will continue to reset it [1][3]. Common approaches for managing this behavior include: 1. Ensure your IDE (e.g., VS Code) is using the workspace version of TypeScript rather than a globally installed or "nightly" version that may conflict with the project's configuration [1][3]. 2. For testing frameworks like Jest, you can override the configuration specifically for the test environment (e.g., in your jest.config.js) rather than changing the base tsconfig.json [6][7]. 3. Verify that your project dependencies, particularly @types/react and @types/react-dom, are up to date, as newer versions of TypeScript often handle the "preserve" setting correctly for editor features [8][3].

Citations:


🌐 Web query:

next.config typescript tsconfig jsx react-jsx preserve next 16

💡 Result:

In Next.js, the jsx compiler option in tsconfig.json is automatically managed by the framework [1][2]. While historically defaulted to preserve [1], recent updates to Next.js (including the transition toward react-jsx in newer versions) reflect the framework's optimized JSX transformation process [3][4]. Next.js automatically enforces its required TypeScript configuration to ensure compatibility with its internal build pipeline [1][2]. If you attempt to manually change the jsx option in your tsconfig.json, Next.js will typically detect the change and revert it to the framework's preferred setting upon running next dev or next build [1][2]. Key points regarding this behavior: 1. Automatic Management: Next.js treats tsconfig.json as a managed file [1][2]. When you start the development server or run a build, Next.js checks your configuration and updates mandatory fields—such as jsx—to ensure they align with how Next.js compiles your code [1][2]. 2. Evolution of the jsx Setting: The framework has moved toward the react-jsx setting to utilize the automatic JSX runtime [3][4]. This runtime does not require you to manually import React in every file that uses JSX [4], aligning with modern React standards. 3. Custom Configurations: If you need to use a different TypeScript configuration for specific tasks, you can use the typescript.tsconfigPath option in your next.config.ts (or next.config.js) file to point to a custom tsconfig file [5][6][7]. This allows you to maintain a separate configuration for specialized build processes or tooling without conflicting with the main Next.js managed tsconfig.json [8][9]. 4. IDE Warnings: If you encounter IDE warnings (e.g., in VS Code) suggesting you import React despite using a fragment, it is often due to a mismatch between your local TypeScript version or editor settings and the Next.js managed configuration [1]. Ensure your IDE is using the project's workspace version of TypeScript rather than a global or nightly version [1]. If you are upgrading to Next.js 16, ensure your project meets the minimum requirement of TypeScript 5.1.0 or higher [10]. Always allow Next.js to manage your primary tsconfig.json to prevent build-time incompatibilities [1][2].

Citations:


Align docs/tsconfig.json JSX option with Next.js 16 (jsx: "preserve")
docs/tsconfig.json sets compilerOptions.jsx to "react-jsx", but Next.js 16 expects "preserve" since it manages JSX via its own compiler (and may overwrite this setting). Switch jsx back to "preserve" or use a separate tsconfig for IDE/type-checking needs (via typescript.tsconfigPath) instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/tsconfig.json` at line 20, The tsconfig option "jsx" is set to
"react-jsx" but Next.js 16 expects "preserve"; update the compilerOptions.jsx
value from "react-jsx" to "preserve" in docs/tsconfig.json (or instead switch to
using a separate IDE/type-checking tsconfig and reference it via
typescript.tsconfigPath) so Next's compiler handling remains intact.

@koko1123 koko1123 merged commit 2c6eb62 into main Jun 10, 2026
14 checks passed
@koko1123 koko1123 deleted the chore/docs-dependency-security branch June 10, 2026 01:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant