Conversation
|
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. 📝 WalkthroughWalkthroughExtracts the documentation system from the web app into a new standalone docs application deployed via Cloudflare Workers, adds deployment infrastructure to the CI/CD workflow, removes fumadocs dependencies and docs routes from the web app, and updates the root gitignore patterns. Changes
Sequence DiagramsequenceDiagram
participant GHA as GitHub Actions
participant Wrangler as Cloudflare Wrangler
participant Builder as Build System
participant Worker as Workers Runtime
GHA->>GHA: Determine app (api/web/docs)
alt matrix.app == 'docs'
GHA->>Builder: Run build for docs app
Builder->>Builder: Compile routes, components, CSS
Builder-->>GHA: Output .output/server/index.mjs
GHA->>Wrangler: Deploy with wrangler-action
Wrangler->>Wrangler: Read wrangler.jsonc config
Wrangler->>Worker: Upload to Cloudflare Workers
Worker-->>Wrangler: Return deployment URL
Wrangler-->>GHA: Output deployment-url
GHA->>GHA: Capture docs deployment URL
else matrix.app == 'api' or 'web'
GHA->>Builder: Build respective app
Builder-->>GHA: Deployment artifacts
end
GHA->>GHA: Aggregate all deployment URLs
GHA-->>GHA: Return combined result
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
🌏 Preview Deployments
Built from commit: 🤖 This comment will be updated automatically when you push new commits to this PR. |
There was a problem hiding this comment.
Pull request overview
This PR separates the documentation site from the main web application into a standalone apps/docs application. This architectural change will improve build performance and maintainability by isolating documentation concerns.
Changes:
- Created new
apps/docsapp with fumadocs dependencies and configuration - Removed fumadocs dependencies from
apps/web - Updated route paths from
/docs/*to/*in the docs app - Added docs deployment to CI/CD workflows
Reviewed changes
Copilot reviewed 27 out of 67 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| apps/docs/package.json | New docs app package with fumadocs dependencies |
| apps/docs/vite.config.ts | Vite configuration for docs app with MDX support |
| apps/docs/wrangler.jsonc | Cloudflare Workers configuration for docs deployment |
| apps/docs/src/* | Complete docs app source code and routes |
| apps/docs/content/docs/* | Documentation content migrated from web app |
| apps/web/package.json | Removed fumadocs dependencies |
| apps/web/vite.config.ts | Removed MDX plugin and configuration |
| apps/web/src/routes/__root.tsx | Removed docs-specific routing logic |
| .github/workflows/* | Added docs app to deployment workflows |
| pnpm-lock.yaml | Updated dependency resolutions |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
apps/docs/src/lib/docs-layout.ts:13
- The nav title includes "Docs" suffix, which may be redundant since this is a documentation-only site. Consider using just "UCD.js" for consistency with the web app's navigation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- Added `routeTree.gen.ts` for automatic route generation. - Created `router.tsx` to initialize the router with context and scroll restoration. - Developed dynamic route handling in `routes/$` for Fumadocs integration. - Established root route in `routes/__root.tsx` with meta tags and devtools. - Implemented API search functionality in `routes/api/search.ts`. - Set up index route redirection in `routes/index.tsx`. - Configured TypeScript settings in `tsconfig.json`. - Integrated Vite configuration in `vite.config.ts` for enhanced development experience. - Added `wrangler.jsonc` for Cloudflare Workers configuration. - Updated package dependencies in `package.json` and `pnpm-lock.yaml`.
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/web/package.json (1)
43-43: Remove@types/mdxfrom dependencies.No MDX type references exist in the codebase, no
.mdxfiles are present, and no other MDX-related dependencies remain. This type dependency is a leftover and can be safely removed.
🤖 Fix all issues with AI agents
In `@apps/docs/public/manifest.json`:
- Around line 1-25: Update the manifest's placeholder "short_name" and "name"
fields to reflect the UCD documentation app instead of the TanStack template
values: replace the value for "short_name" (currently "TanStack App") with a
concise label like "UCD Docs" and replace the value for "name" (currently
"Create TanStack App Sample") with a full descriptive name like "UCD
Documentation" so the web manifest accurately represents the app.
In `@apps/docs/README.md`:
- Line 132: Fix the typo in the README sentence: change "you" to "your" so the
line reads "React-Query is an excellent addition or alternative to route loading
and integrating it into your application is a breeze." Update the text in
apps/docs/README.md accordingly.
In `@apps/docs/src/routes/__root.tsx`:
- Around line 59-69: TanStackDevtools is rendered unconditionally
(TanStackDevtools / TanStackRouterDevtoolsPanel), causing it to be bundled in
production; wrap the JSX that returns <TanStackDevtools ... /> in a
development-only guard (e.g., check import.meta.env.DEV or process.env.NODE_ENV
=== 'development') so the devtools and TanStackRouterDevtoolsPanel are only
included and rendered in dev builds, or alternatively lazy-load the panel and
render it only when the dev flag is true.
🧹 Nitpick comments (5)
apps/docs/wrangler.jsonc (1)
9-21: Consider reducing head_sampling_rate for production.The observability configuration has
head_sampling_rate: 1(100% sampling) at the top level. While this is excellent for debugging, it may increase costs and overhead in production at scale. Consider overriding with a lower sampling rate (e.g., 0.1 or 0.01) specifically in the production environment.💡 Optional: Add production-specific sampling rate
"production": { "name": "docs-ucdjs-dev", "preview_urls": false, "route": { "custom_domain": true, "pattern": "docs.ucdjs.dev" }, "vars": { "ENVIRONMENT": "production", - } + }, + "observability": { + "head_sampling_rate": 0.1 + } },apps/docs/src/router.tsx (1)
6-16: Router factory pattern is appropriate for SSR.The
getRouterfactory function correctly creates new router instances, which is necessary for server-side rendering scenarios to avoid sharing state between requests. Based on learnings, this aligns with the expected TanStack Router usage.One consideration:
defaultPreloadStaleTime: 0means preloaded data is immediately considered stale, causing refetches on navigation. If the docs content is relatively static, you might benefit from a small positive value (e.g.,30000for 30 seconds) to reduce redundant network requests.apps/docs/src/components/not-found.tsx (1)
38-55: Extract the default docs route to a shared constant to avoid duplication.The value
"ucdjs"is hardcoded in three locations:apps/docs/src/routes/index.tsx(line 8),apps/docs/src/components/not-found.tsx(line 47), andapps/docs/src/lib/docs-layout.ts(line 20). While this is the correct intended default landing page, consolidating it into a single constant would prevent inconsistencies if the default changes in the future.apps/docs/README.md (1)
1-290: Consider customizing this boilerplate README.This appears to be a standard TanStack starter template README. Consider tailoring it to the actual docs application specifics (e.g., remove sections about features not used like TanStack Store, add fumadocs-specific information, update the project description).
apps/docs/src/routes/__root.tsx (1)
11-11: Use a type alias for the empty context.An empty interface is equivalent to
{}. Use a type alias instead, and consider adding properties (likequeryClient,apiBaseUrl) if this docs app needs context similar to the web app.♻️ Suggested fix
-export interface AppRouterContext {} +export type AppRouterContext = Record<string, never>;Or, if you plan to add context properties later:
export interface AppRouterContext { // TODO: Add context properties as needed (e.g., queryClient, apiBaseUrl) }
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (7)
apps/docs/public/favicon.icois excluded by!**/*.icoapps/docs/public/logo192.pngis excluded by!**/*.pngapps/docs/public/logo512.pngis excluded by!**/*.pngapps/docs/public/tanstack-circle-logo.pngis excluded by!**/*.pngapps/docs/public/tanstack-word-logo-white.svgis excluded by!**/*.svgapps/docs/src/logo.svgis excluded by!**/*.svgpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (60)
.github/ucdjs-apps.json.github/workflows/reusable-deploy-app.ymlapps/docs/.cta.jsonapps/docs/.gitignoreapps/docs/README.mdapps/docs/content/docs/core/cli.mdxapps/docs/content/docs/core/client/index.mdxapps/docs/content/docs/core/fs-bridge/bridges/http.mdxapps/docs/content/docs/core/fs-bridge/bridges/node.mdxapps/docs/content/docs/core/fs-bridge/hooks.mdxapps/docs/content/docs/core/fs-bridge/index.mdxapps/docs/content/docs/core/fs-bridge/meta.jsonapps/docs/content/docs/core/fs-bridge/specification/capabilities.mdxapps/docs/content/docs/core/fs-bridge/specification/errors.mdxapps/docs/content/docs/core/fs-bridge/specification/index.mdxapps/docs/content/docs/core/fs-bridge/specification/meta.jsonapps/docs/content/docs/core/index.mdxapps/docs/content/docs/core/meta.jsonapps/docs/content/docs/core/ucd-store.mdxapps/docs/content/docs/index.mdxapps/docs/content/docs/schemas/index.mdxapps/docs/content/docs/schemas/meta.jsonapps/docs/content/docs/schemas/schema-gen.mdxapps/docs/content/docs/schemas/schemas.mdxapps/docs/content/docs/ucdjs/index.mdxapps/docs/content/docs/ucdjs/installation.mdxapps/docs/content/docs/ucdjs/meta.jsonapps/docs/content/docs/utilities/env.mdxapps/docs/content/docs/utilities/index.mdxapps/docs/content/docs/utilities/meta.jsonapps/docs/content/docs/utilities/path-utils/errors.mdxapps/docs/content/docs/utilities/path-utils/examples.mdxapps/docs/content/docs/utilities/path-utils/index.mdxapps/docs/content/docs/utilities/path-utils/platform.mdxapps/docs/content/docs/utilities/path-utils/security.mdxapps/docs/content/docs/utilities/shared.mdxapps/docs/content/docs/utilities/utils.mdxapps/docs/package.jsonapps/docs/public/manifest.jsonapps/docs/public/robots.txtapps/docs/source.config.tsapps/docs/src/components/not-found.tsxapps/docs/src/globals.cssapps/docs/src/lib/docs-layout.tsapps/docs/src/lib/docs-loader.tsapps/docs/src/routeTree.gen.tsapps/docs/src/router.tsxapps/docs/src/routes/$.tsxapps/docs/src/routes/__root.tsxapps/docs/src/routes/api/search.tsapps/docs/src/routes/index.tsxapps/docs/tsconfig.jsonapps/docs/vite.config.tsapps/docs/wrangler.jsoncapps/web/package.jsonapps/web/src/globals.cssapps/web/src/routeTree.gen.tsapps/web/src/routes/__root.tsxapps/web/tsconfig.jsonapps/web/vite.config.ts
💤 Files with no reviewable changes (3)
- apps/web/src/globals.css
- apps/web/vite.config.ts
- apps/web/src/routeTree.gen.ts
🧰 Additional context used
📓 Path-based instructions (1)
apps/web/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Use React, Vite, and TanStack Router for apps/web application
Files:
apps/web/src/routes/__root.tsx
🧠 Learnings (18)
📓 Common learnings
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/web/content/docs/**/*.{md,mdx} : Place documentation content in apps/web/content/docs/ using fumadocs framework
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/web/src/**/*.{ts,tsx} : Use React, Vite, and TanStack Router for apps/web application
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/web/src/**/*.{ts,tsx} : Use React, Vite, and TanStack Router for apps/web application
Applied to files:
apps/docs/src/router.tsxapps/web/src/routes/__root.tsxapps/docs/src/routes/$.tsxapps/docs/README.mdapps/docs/vite.config.tsapps/web/tsconfig.jsonapps/docs/.cta.jsonapps/docs/tsconfig.jsonapps/web/package.jsonapps/docs/src/routes/api/search.tsapps/docs/src/routes/__root.tsxapps/docs/package.jsonapps/docs/src/routes/index.tsxapps/docs/src/routeTree.gen.ts
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/api/src/routes/**/*.{ts,tsx} : Organize API routes by version and type: /api/v1/files, /api/v1/versions, /api/v1/schemas, /_tasks, /.well-known/
Applied to files:
apps/web/src/routes/__root.tsxapps/docs/src/routes/$.tsxapps/web/tsconfig.jsonapps/docs/tsconfig.jsonapps/docs/src/routes/api/search.tsapps/docs/src/routes/__root.tsxapps/docs/src/routes/index.tsxapps/docs/src/routeTree.gen.ts
📚 Learning: 2025-06-09T05:10:32.105Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 45
File: packages/ucd-store/src/download.ts:24-24
Timestamp: 2025-06-09T05:10:32.105Z
Learning: In the ucd-store package refactor, picomatch was moved from direct usage in download.ts to internal usage within the createPathFilter function in filter.ts. The pattern format is still picomatch-compatible, so JSDoc comments referencing picomatch pattern format remain correct.
Applied to files:
apps/docs/src/routes/$.tsxapps/web/tsconfig.jsonapps/docs/src/routes/api/search.tsapps/docs/package.jsonapps/docs/src/routes/index.tsx
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/api/src/routes/**/*.{ts,tsx} : Use Hono web framework with hono/zod-openapi plugin for API routes
Applied to files:
apps/docs/src/routes/$.tsxapps/docs/src/routes/api/search.tsapps/docs/src/routes/index.tsx
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to apps/web/content/docs/**/*.{md,mdx} : Place documentation content in apps/web/content/docs/ using fumadocs framework
Applied to files:
apps/docs/README.mdapps/web/tsconfig.jsonapps/web/package.jsonapps/docs/src/routes/__root.tsxapps/docs/src/lib/docs-loader.ts.github/ucdjs-apps.json.github/workflows/reusable-deploy-app.yml
📚 Learning: 2025-06-29T11:20:13.668Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 87
File: packages/worker-shared/tsconfig.build.json:1-4
Timestamp: 2025-06-29T11:20:13.668Z
Learning: In the ucdjs/ucd project, the packages use tsdown instead of tsc for building libraries. The tsconfig.build.json files are primarily for IDE experience and type checking, not for direct compilation, so including "test" directories in these configs doesn't affect build output.
Applied to files:
apps/web/tsconfig.jsonapps/docs/tsconfig.jsonapps/docs/wrangler.jsonc
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to packages/*/tsconfig.json : Use ucdjs-tooling/tsconfig for TypeScript configuration in new packages
Applied to files:
apps/web/tsconfig.jsonapps/docs/tsconfig.jsonapps/docs/package.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to packages/*/tsdown.config.ts : Use ucdjs-tooling/tsdown-config for build configuration in new packages
Applied to files:
apps/web/tsconfig.jsonapps/docs/tsconfig.jsonapps/docs/wrangler.jsoncapps/docs/package.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Applies to packages/*/tsdown.config.ts : Use tsdown for building TypeScript packages with each package having its own tsdown.config.ts using ucdjs-tooling/tsdown-config
Applied to files:
apps/docs/tsconfig.json
📚 Learning: 2025-07-20T05:37:40.565Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 131
File: tooling/eslint-plugin/package.json:0-0
Timestamp: 2025-07-20T05:37:40.565Z
Learning: In the ucdjs/ucd project, internal tooling packages (private packages in the tooling/ directory) export TypeScript files directly without requiring a build step, unlike published packages which use tsdown to build and export from ./dist/. Examples include ucdjs/tsdown-config and ucdjs/eslint-plugin.
Applied to files:
apps/docs/tsconfig.jsonapps/docs/package.json
📚 Learning: 2025-09-13T05:33:48.323Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 249
File: .github/scripts/compare-openapi.ts:1-1
Timestamp: 2025-09-13T05:33:48.323Z
Learning: Node.js v22.6.0+ supports running TypeScript files directly using the --experimental-strip-types flag, and Node v23+ enables type stripping by default. This allows .ts files to execute without prior transpilation, though it only strips type annotations and doesn't perform type checking.
Applied to files:
apps/docs/tsconfig.json
📚 Learning: 2025-09-13T05:33:48.323Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 249
File: .github/scripts/compare-openapi.ts:1-1
Timestamp: 2025-09-13T05:33:48.323Z
Learning: As of late 2024, Node.js 22.x is the Active LTS version and supports running TypeScript files directly via the --experimental-strip-types flag (introduced in v22.6.0), so .ts files can execute without transpilation in current Node LTS environments.
Applied to files:
apps/docs/tsconfig.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Use pnpm catalogs for centralized dependency version management organized by purpose (monorepo, testing, linting, prod, dev, workers, types, web, vscode, docs)
Applied to files:
apps/web/package.jsonapps/docs/package.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Note that ucdjs-internal/shared package may not follow semantic versioning as it's only for internal use, and changes may require coordinated updates in other packages
Applied to files:
apps/docs/package.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Require Node.js >= 22.18 and pnpm 10.26.1 (enforced via packageManager field in root package.json)
Applied to files:
apps/docs/package.json
📚 Learning: 2025-06-28T08:01:22.596Z
Learnt from: luxass
Repo: ucdjs/ucd PR: 85
File: packages/fetch/package.json:37-38
Timestamp: 2025-06-28T08:01:22.596Z
Learning: In the ucdjs/ucd project, relative paths in npm scripts within packages (like `../../apps/api/.generated/openapi.json` in packages/fetch/package.json) resolve correctly even when run via Turborepo from the repo root, contrary to initial concerns about working directory changes.
Applied to files:
apps/docs/package.json
📚 Learning: 2026-01-08T03:33:34.195Z
Learnt from: CR
Repo: ucdjs/ucd PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-08T03:33:34.195Z
Learning: Use Moonbeam (ucdjs/moonbeam) ESM loader to resolve workspace packages to their source files instead of built versions when running build scripts
Applied to files:
apps/docs/src/lib/docs-loader.ts
🧬 Code graph analysis (7)
apps/web/src/routes/__root.tsx (2)
apps/web/src/components/ui/sidebar.tsx (2)
SidebarProvider(716-716)SidebarInset(706-706)apps/web/src/components/layout/sidebar/app-sidebar.tsx (1)
AppSidebar(38-157)
apps/docs/src/routes/$.tsx (3)
apps/docs/src/routes/__root.tsx (1)
Route(13-49)apps/docs/src/routes/api/search.ts (1)
Route(10-16)apps/docs/src/routes/index.tsx (1)
Route(3-12)
apps/docs/vite.config.ts (1)
vscode/src/config.ts (1)
config(4-7)
apps/docs/src/routes/api/search.ts (1)
apps/docs/src/lib/docs-loader.ts (1)
source(4-7)
apps/docs/src/routes/__root.tsx (1)
apps/web/src/routes/__root.tsx (2)
AppRouterContext(16-20)Route(22-73)
apps/docs/src/routes/index.tsx (1)
apps/docs/src/routes/$.tsx (1)
Route(55-64)
apps/docs/src/routeTree.gen.ts (1)
apps/docs/src/router.tsx (1)
getRouter(6-16)
🪛 Biome (2.1.2)
apps/docs/src/routes/__root.tsx
[error] 11-11: An empty interface is equivalent to {}.
Safe fix: Use a type alias instead.
(lint/suspicious/noEmptyInterface)
🪛 LanguageTool
apps/docs/README.md
[grammar] ~36-~36: Use a hyphen to join words.
Context: ...com/router). The initial setup is a file based router. Which means that the route...
(QB_NEW_EN_HYPHEN)
[grammar] ~66-~66: Use a hyphen to join words.
Context: ...onent). ### Using A Layout In the File Based Routing setup the layout is locate...
(QB_NEW_EN_HYPHEN)
[grammar] ~128-~128: Use a hyphen to join words.
Context: ... }, }); ``` Loaders simplify your data fetching logic dramatically. Check out m...
(QB_NEW_EN_HYPHEN)
[grammar] ~132-~132: Ensure spelling is correct
Context: ...o route loading and integrating it into you application is a breeze. First add you...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~215-~215: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ting point for your project. First you need to add TanStack Store as a dependency: ``...
(REP_NEED_TO_VB)
[style] ~290-~290: Consider removing “of” to be more concise
Context: ... # Learn More You can learn more about all of the offerings from TanStack in the [TanStac...
(ALL_OF_THE)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Upload results
- GitHub Check: typecheck
- GitHub Check: test (windows-latest)
- GitHub Check: test (macos-latest)
- GitHub Check: test (ubuntu-latest)
🔇 Additional comments (27)
apps/web/tsconfig.json (1)
12-14: LGTM!The removal of the
fumadocs-mdx:collections/*path alias is consistent with the PR's objective of separating documentation into a standalone app. The remaining@/*path alias for internal source imports is correctly preserved.apps/web/package.json (1)
10-11: LGTM!The removal of
fumadocs-mdx &&from thelintandtypecheckscripts correctly reflects the docs separation. This simplifies the scripts now that fumadocs preprocessing is no longer needed in the web app.apps/docs/public/robots.txt (1)
1-3: LGTM!Standard robots.txt configuration allowing all crawlers access to the documentation site, which is appropriate for public documentation.
apps/docs/src/lib/docs-loader.ts (1)
4-7: LGTM!The
baseUrlchange to"/"correctly reflects that documentation is now served from the root of the dedicated docs app rather than a/docssubpath within the web app.apps/docs/.cta.json (1)
1-16: LGTM - scaffolding configuration looks appropriate.The configuration correctly specifies pnpm, TypeScript, Tailwind, and file-router mode which aligns with the project's tooling. The chosen add-ons (nitro, start, compiler) support the SSR deployment requirements.
apps/docs/.gitignore (1)
1-13: LGTM!Comprehensive .gitignore covering all relevant build artifacts for the Vite/Nitro/Cloudflare Workers toolchain used by this docs app.
apps/docs/src/lib/docs-layout.ts (1)
11-36: LGTM! Navigation paths correctly updated for standalone docs app.The URL changes from
/docs/*to/*are consistent with the docs app now being served from its own domain/root. The title change to "UCD.js Docs" appropriately distinguishes this from the main web app.apps/web/src/routes/__root.tsx (1)
82-87: LGTM! Layout simplified after docs separation.The removal of conditional
isDocsPagelogic and streamlined layout structure is a clean simplification now that docs routes are handled by a separate app. As per coding guidelines, this correctly uses React with TanStack Router.apps/docs/package.json (2)
6-42: Dependencies and scripts are well-organized.The use of pnpm catalogs (
catalog:web,catalog:docs,catalog:types, etc.) for centralized dependency version management follows project conventions. The scripts appropriately chainfumadocs-mdxbefore lint/typecheck to ensure generated files are available. Based on learnings, this aligns with the project's catalog-based dependency management.
5-5: No issues found. ThepackageManagerversion inapps/docs/package.json(pnpm@10.27.0) is consistent with the root package.json, both enforcing the same version.Likely an incorrect or invalid review comment.
.github/workflows/reusable-deploy-app.yml (2)
212-220: LGTM! Docs deployment step correctly mirrors existing patterns.The deploy-docs job follows the established pattern used by deploy-api and deploy-web, using the same Wrangler action version with appropriate working directory. The conditional
matrix.app == 'docs'ensures it only runs for docs deployments.
226-226: LGTM! Deployment URL extraction correctly extended.The
||chaining works correctly here since only one deploy step executes per matrix run (api, web, or docs), so exactly one will have an output URL.apps/docs/vite.config.ts (1)
1-29: Fix mdx plugin configuration pass-through in vite.config.ts.The
source.config.tsfile exists and is properly configured, but the vite.config.ts has an issue with how the fumadocs-mdx plugin is invoked. The import statement usesimport * as MdxConfig from "./source.config", which creates a namespace object{ docs: {...} }. However, the mdx plugin is called withmdx(MdxConfig)instead ofmdx(MdxConfig.docs).Change line 14 from:
mdx(MdxConfig),to:
mdx(MdxConfig.docs),The plugin expects the docs configuration object directly, not the namespace wrapper.
⛔ Skipped due to learnings
Learnt from: CR Repo: ucdjs/ucd PR: 0 File: AGENTS.md:0-0 Timestamp: 2026-01-08T03:33:34.195Z Learning: Applies to apps/web/src/**/*.{ts,tsx} : Use React, Vite, and TanStack Router for apps/web applicationLearnt from: luxass Repo: ucdjs/ucd PR: 45 File: packages/ucd-store/src/download.ts:24-24 Timestamp: 2025-06-09T05:10:32.105Z Learning: In the ucd-store package refactor, picomatch was moved from direct usage in download.ts to internal usage within the createPathFilter function in filter.ts. The pattern format is still picomatch-compatible, so JSDoc comments referencing picomatch pattern format remain correct..github/ucdjs-apps.json (1)
12-17: LGTM!The new "docs" app entry follows the established pattern and is consistent with the existing "api" and "web" entries.
apps/docs/tsconfig.json (1)
1-29: Configuration looks solid for a Vite + React app.The TypeScript configuration is well-suited for the docs app setup with appropriate strict checks and path aliases for the fumadocs integration. Based on learnings, this aligns with the expected React, Vite, and TanStack Router stack used in the web app.
One consideration:
verbatimModuleSyntax: false(line 13) is explicitly disabled. For ESM projects,verbatimModuleSyntax: trueis often preferred to ensure type-only imports are explicitly marked, but this may have been intentional to accommodate certain fumadocs or TanStack patterns.apps/docs/wrangler.jsonc (1)
22-63: Well-structured Wrangler configuration.The environment-specific configurations for production and preview are properly set up with custom domains. The assets binding, compatibility flags, and module rules are appropriate for a Vite-built application deployed to Cloudflare Workers.
apps/docs/src/components/not-found.tsx (1)
10-36: Clean and reusable NotFoundLayout component.The component is well-structured with appropriate props interface and conditional rendering. The Tailwind classes provide good visual hierarchy for the 404 state.
apps/docs/src/routes/$.tsx (2)
16-17: Import path updates align with the new docs app structure.The flattened import paths (
@/lib/docs-layoutand@/lib/docs-loader) are consistent with the standalone docs app architecture being introduced in this PR.
55-64: Route path simplification looks correct.The route path change from
"/(docs)/docs/$"to"/$"is appropriate for a standalone docs application. The splat route correctly handles all documentation paths, and the integration with the index route's redirect (redirecting/to/$with_splat: "ucdjs") ensures proper initial navigation.apps/docs/src/routes/api/search.ts (2)
3-3: Import path update is consistent with the docs app restructuring.
10-16: Route path simplification looks good.The route path change from
"/(docs)/api/search"to"/api/search"is consistent with the standalone docs app architecture. The server handler configuration is properly structured for handling search requests.apps/docs/src/globals.css (3)
1-5: Tailwind v4 setup with fumadocs integration looks correct.The import structure and
@custom-variant darksyntax are appropriate for Tailwind CSS v4. The integration with fumadocs-ui's shadcn and preset stylesheets follows the recommended pattern.
7-48: Well-structured CSS custom properties for theming.The oklch color format provides perceptually uniform colors and is well-suited for Tailwind v4. Both light and dark theme variables are comprehensive and cover all the standard semantic color roles.
50-83: Theme inline mapping and base layer are properly configured.The
@theme inlineblock correctly maps CSS variables to Tailwind's color system, and the base layer appropriately sets default border, outline, and body styles using@apply.apps/docs/src/routes/index.tsx (1)
3-12: Route simplification and redirect logic are correct.The route path change from
"/(docs)/docs/"to"/"and redirect target from"/docs/$"to"/$"properly align with the standalone docs app structure. ThebeforeLoadredirect pattern ensures users landing on the root path are immediately directed to the default documentation page (ucdjs).apps/docs/src/routes/__root.tsx (1)
13-49: LGTM on the route configuration.The head metadata (charset, viewport, title, description, keywords, favicon, stylesheet) is well-structured and consistent with the web app's approach.
apps/docs/src/routeTree.gen.ts (1)
1-104: Auto-generated file — skipping detailed review.This file is automatically generated by TanStack Router and will be overwritten. The route tree structure (index, splat, and API search routes) appears correctly generated and aligns with the docs app's routing needs.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
- Added new entries to `.gitignore` for `.output` and `.tanstack`. - Removed unused `.cta.json` and `.gitignore` files from `apps/docs`. - Introduced a new `eslint.config.js` file for linting configuration. - Updated `package.json` to include `@luxass/eslint-config` and `eslint` dependencies. - Modified documentation links in `not-found.tsx` to point to the new documentation site.
🔗 Linked issue
📚 Description
This will make the website build faster, and more performant.
Summary by CodeRabbit
Release Notes
New Features
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.