Skip to content

Web App#35

Merged
chris-c-thomas merged 1 commit intomainfrom
web
Mar 10, 2026
Merged

Web App#35
chris-c-thomas merged 1 commit intomainfrom
web

Conversation

@chris-c-thomas
Copy link
Copy Markdown
Owner

No description provided.

@chris-c-thomas chris-c-thomas self-assigned this Mar 10, 2026
Copilot AI review requested due to automatic review settings March 10, 2026 23:58
@chris-c-thomas chris-c-thomas merged commit dd2a42e into main Mar 10, 2026
6 checks passed
@sonarqubecloud
Copy link
Copy Markdown

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Mar 10, 2026

Greptile Summary

This PR updates the documentation (CLAUDE.md at the monorepo root and apps/web/CLAUDE.md) to reflect the current production deployment architecture for the LexBuild web app. The key changes document the shift to on-demand ISR (empty generateStaticParams() + revalidate = false), Cloudflare R2 as the content and PageFind index store, Vercel deployment from the monorepo root, and the .vercelignore strategy for staying under the 10 MB upload limit.

  • Deployment commands corrected: vercel deploy --prod and cd apps/web && bash scripts/deploy.sh now correctly indicate execution from the monorepo root.
  • ISR architecture clarified: Replaces the prior "no generateStaticParams" guidance with the accurate "empty array + dynamicParams=true + revalidate=false" pattern and explains why Vercel requires it to honour s-maxage cache headers.
  • Cloudflare R2 details added: Content storage (CONTENT_STORAGE=s3), PageFind index size (~61k files, ~400 MB), and NEXT_PUBLIC_PAGEFIND_BASE_URL are all documented.
  • Stale changeset included: The changeset (brown-areas-dream.md) bumps @lexbuild/cli, @lexbuild/core, and @lexbuild/usc as minor with no corresponding source code changes in this PR — this appears to be a carry-over and should be reviewed before merge.
  • Broken reference: CLAUDE.md now points to .claude/deployment.md, which does not yet exist in the repository.

Confidence Score: 3/5

  • Safe to merge after resolving the stale changeset and the missing .claude/deployment.md reference.
  • All changes are documentation-only and accurately reflect the deployed architecture. The two issues — an unintentional minor version bump for unchanged packages and a dangling reference to a non-existent deployment guide — are straightforward to fix but should be addressed before merge to avoid confusing release notes and broken docs.
  • .changeset/brown-areas-dream.md should be removed or deferred; CLAUDE.md line 109 references a missing file.

Important Files Changed

Filename Overview
.changeset/brown-areas-dream.md Adds a minor-version changeset for @lexbuild/cli, @lexbuild/core, and @lexbuild/usc — but this PR contains only documentation changes, no source code changes to those packages.
CLAUDE.md Updates root CLAUDE.md web app notes with accurate deployment details (monorepo root, Vercel config, Cloudflare R2, on-demand ISR) and replaces old README reference with a .claude/deployment.md link that doesn't yet exist.
apps/web/CLAUDE.md Updates web app CLAUDE.md to reflect ISR architecture (empty generateStaticParams, Cloudflare R2, PageFind on R2) and corrects deployment commands to run from monorepo root.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Developer: monorepo root] --> B[vercel deploy --prod]
    B --> C[Vercel reads pnpm-lock.yaml\nfrom repo root]
    C --> D[Root Dir = apps/web\nBuild Cmd = next build]
    D --> E{Route request}
    E --> F[generateStaticParams returns empty array\n+ dynamicParams=true\n+ revalidate=false]
    F --> G{Page in edge cache?}
    G -- Yes --> H[Return cached HTML\ns-maxage=31536000]
    G -- No --> I[Server Component renders on-demand]
    I --> J[getContentProvider\nreads .md from Cloudflare R2]
    J --> K[Parse frontmatter\nShiki highlight\nremark render]
    K --> H
    L[PageFind index ~61k files, ~400 MB] --> M[Cloudflare R2\nvia NEXT_PUBLIC_PAGEFIND_BASE_URL]
    M --> N[Client search dialog]
Loading

Last reviewed commit: 9e4a623

Comment on lines +1 to +7
---
"@lexbuild/cli": minor
"@lexbuild/core": minor
"@lexbuild/usc": minor
---

Update for LexBuild deployment
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Changeset includes packages with no code changes

This changeset marks @lexbuild/cli, @lexbuild/core, and @lexbuild/usc for a minor version bump, but this PR contains only documentation edits (CLAUDE.md files). None of those three packages have any source code changes in this diff.

Publishing a minor version bump for these packages without any actual changes will produce empty/misleading release notes and unnecessarily increment the version numbers. If this changeset is a carry-over from another branch or work stream, it should either be removed or moved to the PR where the corresponding code changes live.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .changeset/brown-areas-dream.md
Line: 1-7

Comment:
**Changeset includes packages with no code changes**

This changeset marks `@lexbuild/cli`, `@lexbuild/core`, and `@lexbuild/usc` for a `minor` version bump, but this PR contains only documentation edits (`CLAUDE.md` files). None of those three packages have any source code changes in this diff.

Publishing a minor version bump for these packages without any actual changes will produce empty/misleading release notes and unnecessarily increment the version numbers. If this changeset is a carry-over from another branch or work stream, it should either be removed or moved to the PR where the corresponding code changes live.

How can I resolve this? If you propose a fix, please make it concise.

Comment thread CLAUDE.md
- **Content served from Cloudflare R2** in production (`CONTENT_STORAGE=s3` in `.env.production`). PageFind index (~61k files) also served from R2 via `NEXT_PUBLIC_PAGEFIND_BASE_URL`.
- **Root `.vercelignore`** excludes `downloads/`, `output/`, `apps/web/content/`, `apps/web/public/_pagefind/` to stay under Vercel's 10 MB upload limit. `apps/web/public/nav/` is NOT excluded (small static JSON needed for sidebar).
- **On-demand ISR** — pages use empty `generateStaticParams()` + `revalidate = false` so Vercel caches at the edge. Without this, Vercel forces `max-age=0` on dynamic routes.
- See `.claude/deployment.md` for the complete deployment guide, `apps/web/CLAUDE.md` for the full web app spec.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Referenced file .claude/deployment.md does not exist

The updated docs now say "See .claude/deployment.md for the complete deployment guide," but the .claude/ directory does not exist anywhere in the repository. Any developer (or AI assistant reading this guide) who follows this reference will hit a dead end.

Either create the file as part of this PR, or revert to a reference that already exists (e.g., apps/web/README.md) until the deployment guide is ready.

Prompt To Fix With AI
This is a comment left during a code review.
Path: CLAUDE.md
Line: 109

Comment:
**Referenced file `.claude/deployment.md` does not exist**

The updated docs now say "See `.claude/deployment.md` for the complete deployment guide," but the `.claude/` directory does not exist anywhere in the repository. Any developer (or AI assistant reading this guide) who follows this reference will hit a dead end.

Either create the file as part of this PR, or revert to a reference that already exists (e.g., `apps/web/README.md`) until the deployment guide is ready.

How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the web app and root project documentation to reflect the current Vercel/R2 deployment model and caching strategy, and adds a changeset presumably intended to publish a release.

Changes:

  • Clarifies web deployment steps (run Vercel deploy from monorepo root) and documents on-demand ISR requirements for edge caching.
  • Documents CDN caching mechanics, Pagefind being served from R2, and related environment variables.
  • Adds a changeset bumping @lexbuild/core, @lexbuild/usc, and @lexbuild/cli as a minor release.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
apps/web/CLAUDE.md Updates web app operational docs: deployment location, ISR/caching explanation, Pagefind hosting details.
CLAUDE.md Updates root “Web App Notes” with production URL, deployment constraints, R2 usage, and caching notes.
.changeset/brown-areas-dream.md Adds a release changeset for three packages.

Comment thread apps/web/CLAUDE.md
Comment on lines +354 to +358
# Deploy app — must run from monorepo root (Vercel needs pnpm-lock.yaml)
vercel deploy --prod

# Or run full pipeline
bash scripts/deploy.sh
cd apps/web && bash scripts/deploy.sh
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

scripts/deploy.sh is referenced in the deployment instructions, but there is no apps/web/scripts/deploy.sh (and no deploy.sh anywhere in the repo). Update the docs to point at the actual deployment pipeline (e.g., the existing generate-* scripts + vercel deploy --prod), or add the missing script if it's intended to exist.

Copilot uses AI. Check for mistakes.
Comment thread CLAUDE.md
- **Content served from Cloudflare R2** in production (`CONTENT_STORAGE=s3` in `.env.production`). PageFind index (~61k files) also served from R2 via `NEXT_PUBLIC_PAGEFIND_BASE_URL`.
- **Root `.vercelignore`** excludes `downloads/`, `output/`, `apps/web/content/`, `apps/web/public/_pagefind/` to stay under Vercel's 10 MB upload limit. `apps/web/public/nav/` is NOT excluded (small static JSON needed for sidebar).
- **On-demand ISR** — pages use empty `generateStaticParams()` + `revalidate = false` so Vercel caches at the edge. Without this, Vercel forces `max-age=0` on dynamic routes.
- See `.claude/deployment.md` for the complete deployment guide, `apps/web/CLAUDE.md` for the full web app spec.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

This references .claude/deployment.md, but there is no .claude/ directory in the repo. Either add the missing deployment guide at that path, or update this link to the correct existing document so readers don't hit a dead end.

Suggested change
- See `.claude/deployment.md` for the complete deployment guide, `apps/web/CLAUDE.md` for the full web app spec.
- See `docs/architecture/overview.md` for architecture and deployment details, `apps/web/CLAUDE.md` for the full web app spec.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +4
"@lexbuild/cli": minor
"@lexbuild/core": minor
"@lexbuild/usc": minor
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

This changeset bumps @lexbuild/{cli,core,usc} as a minor release, but the PR contents shown are documentation-only. If there are no user-facing code/API changes, please drop the changeset entirely (preferred) or adjust it to the appropriate level (likely patch) and scope.

Suggested change
"@lexbuild/cli": minor
"@lexbuild/core": minor
"@lexbuild/usc": minor
"@lexbuild/cli": patch
"@lexbuild/core": patch
"@lexbuild/usc": patch

Copilot uses AI. Check for mistakes.
@chris-c-thomas chris-c-thomas deleted the web branch March 15, 2026 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants