Initial release of homepage#326
Conversation
|
Warning Review limit reached
More reviews will be available in 29 minutes and 33 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds a static Next.js (App Router) homepage app with Tailwind and tooling, page components and layout, documentation, commit-scope and workspace dependency updates, and a tag-triggered GitHub Actions workflow that builds and deploys the static export to GitHub Pages (apps.f3nation.com). ChangesHomepage Application
Sequence Diagram(s)sequenceDiagram
participant TagPush as Tag (homepage@*)
participant Workflow as deploy-homepage.yml
participant Checks as test-coverage check
participant Build as build job (pnpm, Node 24)
participant Artifact as Pages Artifact (apps/homepage/out)
participant Pages as GitHub Pages
TagPush->>Workflow: triggers workflow
Workflow->>Checks: wait for test-coverage success for sha
Checks-->>Workflow: success
Workflow->>Build: install & build f3-homepage
Build-->>Artifact: produce static export (apps/homepage/out)
Workflow->>Artifact: upload pages artifact
Workflow->>Pages: deploy via actions/deploy-pages@v4 (sets environment URL)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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.
Actionable comments posted: 4
🤖 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 @.github/workflows/deploy-homepage.yml:
- Around line 12-67: Add a top-level permissions block to the workflow to
enforce least-privilege for GITHUB_TOKEN (e.g., permissions: contents: read,
packages: read) so jobs like ci-check and build run with minimal scopes, and
keep the deploy job's elevated permissions (permissions: pages: write, id-token:
write in the deploy job that uses actions/deploy-pages@v4 with id: deployment)
as-is; update the workflow YAML to include this global permissions block above
the jobs key.
- Line 31: The checkout step currently uses actions/checkout@v4 without
disabling credential persistence, leaving a writable token in git config; update
the checkout step (the actions/checkout@v4 invocation) to include
persist-credentials: false so credentials are not written to the repo git config
(and optionally ensure fetch-depth is set as needed), i.e., modify the checkout
step in deploy-homepage.yml to pass persist-credentials: false alongside the
existing parameters.
In `@apps/homepage/package.json`:
- Around line 16-18: The package.json currently pins react and react-dom to
18.3.1 while using next@^15.3.6 which requires React 19 for the App Router;
update the "react" and "react-dom" entries in apps/homepage/package.json to a
React 19 release (e.g., "react": "^19.0.0", "react-dom": "^19.0.0"), then run
the installer and smoke-test the App Router pages (or alternatively change
Next.js to a Pages Router setup if you must keep React 18).
- Line 9: The package.json start script currently calls "next start --port 3005"
but next.config.ts uses output: "export", so update the "start" npm script (the
"start" entry in apps/homepage/package.json) to serve the generated static out/
directory instead (for example use an npx serve command like `npx serve@latest
out -l 3005`) and leave the "build" script as the existing "next build"; ensure
the start script points at out/ and binds to port 3005.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: a7cd5de5-5119-4e60-ade3-50cd97e99f4e
⛔ Files ignored due to path filters (3)
apps/homepage/public/f3_logo.pngis excluded by!**/*.pngapps/homepage/public/favicon.icois excluded by!**/*.icopnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (15)
.github/workflows/deploy-homepage.ymlapps/homepage/README.mdapps/homepage/eslint.config.jsapps/homepage/next.config.tsapps/homepage/package.jsonapps/homepage/postcss.config.mjsapps/homepage/public/.nojekyllapps/homepage/public/CNAMEapps/homepage/src/app/globals.cssapps/homepage/src/app/layout.tsxapps/homepage/src/app/page.tsxapps/homepage/tailwind.config.tsapps/homepage/tsconfig.jsoncommitlint.config.mjsdocs/LOCAL_DEV_DOCKER.md
There was a problem hiding this comment.
Pull request overview
This PR introduces a new apps/homepage Next.js static-export app for apps.f3nation.com, intended as a landing page and directory for F3 Nation apps, with GitHub Pages deployment support and monorepo tooling integration.
Changes:
- Adds the
f3-homepageapp with Next.js, Tailwind, TypeScript, ESLint, and static export configuration. - Adds a GitHub Pages deployment workflow triggered by
homepage@*tags. - Updates monorepo docs, commit scopes, and lockfile entries for the new app.
Reviewed changes
Copilot reviewed 14 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/deploy-homepage.yml |
Adds tag-triggered GitHub Pages deployment for the homepage app. |
apps/homepage/README.md |
Documents app purpose, development, build, deployment, and content updates. |
apps/homepage/eslint.config.js |
Adds lint configuration using shared monorepo configs. |
apps/homepage/next.config.ts |
Configures static export, trailing slashes, and unoptimized images. |
apps/homepage/package.json |
Defines homepage package metadata, scripts, and dependencies. |
apps/homepage/postcss.config.mjs |
Adds PostCSS config for Tailwind and Autoprefixer. |
apps/homepage/public/.nojekyll |
Prevents GitHub Pages from processing static output with Jekyll. |
apps/homepage/public/CNAME |
Configures the custom GitHub Pages domain. |
apps/homepage/src/app/globals.css |
Adds Tailwind directives and theme CSS variables. |
apps/homepage/src/app/layout.tsx |
Adds root layout, metadata, viewport theme color, and font setup. |
apps/homepage/src/app/page.tsx |
Implements the app-directory landing page UI. |
apps/homepage/tailwind.config.ts |
Adds Tailwind content paths and shared preset. |
apps/homepage/tsconfig.json |
Adds TypeScript config extending the shared base config. |
commitlint.config.mjs |
Adds homepage as an allowed commit scope. |
docs/LOCAL_DEV_DOCKER.md |
Documents the homepage local development URL. |
pnpm-lock.yaml |
Adds homepage dependencies and updates lockfile resolutions. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/homepage/package.json (1)
15-33:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winCI is failing:
pnpm-lock.yamlis out of sync with this new manifest.The pipeline fails at
pnpm install --frozen-lockfilebecause the lockfile does not contain the specifiers introduced here (next@^15.3.6,react@18.3.1,react-dom@18.3.1, theworkspace:*configs, and allcatalog:entries). The workspace lockfile must be regenerated and committed so the frozen install resolves these new dependencies.Run
pnpm installat the repo root and commit the updatedpnpm-lock.yamlalongside this manifest.Want me to open an issue to track regenerating and committing the lockfile?
🤖 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 `@apps/homepage/package.json` around lines 15 - 33, The package.json adds new specifiers (next@^15.3.6, react@18.3.1, react-dom@18.3.1 and the workspace:* and catalog: entries in "devDependencies"), but the repository pnpm-lock.yaml is out of sync; to fix, run pnpm install at the repo root to regenerate the workspace lockfile (ensuring the new entries for the "dependencies" and "devDependencies" sections are captured) and commit the updated pnpm-lock.yaml alongside this package.json change so CI's pnpm install --frozen-lockfile succeeds.
🤖 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 `@apps/homepage/README.md`:
- Line 40: The README comment for page.tsx is ambiguous; update the comment next
to page.tsx to explicitly state its purpose (e.g., "Landing page (Next.js App
Router)" if it refers to the Next.js app/ folder, or "Landing page — displays
app directory" if it shows the F3 app directory) so readers know whether
page.tsx is the Next.js App Router entry or an app-directory/index view; change
the text in the README where page.tsx is listed to one of those clearer phrases.
- Line 63: The README claim "Deployment is tag-based via Release Please" is
unsupported: either remove or reword that sentence in README.md to state
deployments are triggered by pushing tags matching 'homepage@*', or add the
missing Release Please configuration/workflow to actually create those tags;
locate the text in README.md and the deploy trigger in deploy-homepage.yml (tag
pattern 'homepage@*') and ensure the README accurately reflects whether Release
Please is configured or update the repo to include Release Please workflows that
generate those tags.
---
Outside diff comments:
In `@apps/homepage/package.json`:
- Around line 15-33: The package.json adds new specifiers (next@^15.3.6,
react@18.3.1, react-dom@18.3.1 and the workspace:* and catalog: entries in
"devDependencies"), but the repository pnpm-lock.yaml is out of sync; to fix,
run pnpm install at the repo root to regenerate the workspace lockfile (ensuring
the new entries for the "dependencies" and "devDependencies" sections are
captured) and commit the updated pnpm-lock.yaml alongside this package.json
change so CI's pnpm install --frozen-lockfile succeeds.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 71da9c30-15cd-4460-82ee-5edb08a42d28
📒 Files selected for processing (4)
.github/workflows/deploy-homepage.ymlapps/homepage/README.mdapps/homepage/package.jsonapps/homepage/src/app/page.tsx
Code reviewFound 3 issues:
f3-nation/.github/workflows/deploy-homepage.yml Lines 17 to 28 in 01f306a Tags must be created from commits that were already pushed to a branch (so the
f3-nation/release-please-config.json Lines 20 to 35 in 01f306a Either add
Lines 1394 to 1408 in 01f306a The homepage's own 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
|
I think locally this would be more beneficial if the apps that exist in the monorepo would be linked on the new Homepage. Example: clicking on "F3 Map" would go to |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@packages/api/package.json`:
- Around line 40-42: Update the peer dependency ranges in package.json to
prevent accidental React 19 installs: replace the "react" and "react-dom" ranges
currently set to ">=18" with a capped range like ">=18 <19" (or "^18 <19") and
optionally change "next" from ">=14" to a capped range such as ">=14 <16" to
avoid future major-version drift; edit the dependency entries for "react",
"react-dom", and "next" accordingly so package resolution remains stable.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 20f6af74-6f72-4c30-af17-5522835bdd7a
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
packages/api/package.jsonpackages/ui/package.jsonpnpm-workspace.yaml
|
This pull request introduces the new F3 Nation Homepage app, a static Next.js landing page that serves as a directory for all F3 Nation apps. It includes the full project scaffolding, configuration, documentation, and deployment setup for building and deploying the homepage as a static export to GitHub Pages. The homepage is styled with TailwindCSS, uses a shared monorepo config, and is integrated into the local development and release workflow.
The most important changes are:
Homepage App Implementation:
src/app/page.tsx, featuring a directory of all F3 Nation apps with descriptions and links, styled using TailwindCSS and leveraging Next.js 15's static export features. [1] [2] [3]tsconfig.json), Tailwind and PostCSS configs, ESLint and Prettier, and package dependencies for a modern React/Next.js app. [1] [2] [3] [4] [5]Deployment & Hosting:
.github/workflows/deploy-homepage.yml) for tag-based deployment to GitHub Pages, including CI gating, build, artifact upload, and deployment steps.public/CNAMEfor custom domain configuration (apps.f3nation.com) and documents the one-time GitHub Pages setup process. [1] [2]Documentation & Monorepo Integration:
README.mdwith usage, tech stack, deployment, and contribution instructions.commitlint.config.mjsand local dev Docker docs. [1] [2]Summary by CodeRabbit
New Features
Documentation
Configuration