Repository navigation
Conversation
All routes shipped in one 2.1 MB bundle (678 KB gzipped), so the homepage downloaded ECharts, Cytoscape and Leaflet even though only the visualization pages use them. Projects, Concepts and the six project routes now load with React.lazy inside one Suspense boundary whose fallback keeps the Layout. Homepage script: 275.8 KB (86 KB gzipped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN
All routes showed the same tab title, so bookmarks and history entries for a
case study were indistinguishable from the homepage. Each page now renders a
<title> ("Page Name | Don Branson") that React 19 hoists into <head>; the
static title in index.html remains the no-JS fallback.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN
|
Review: clean, well-scoped change. Bundle savings are real and the test plan is thorough. Nothing blocking; suggestions below. Suggestions
Other areas
Good to merge once the error-boundary point is considered. 🤖 Generated with Claude Code |
The page was generated in b03de6c and opened with an anecdote that never happened. Removes ConceptsPage.tsx, its lazy route and the CLAUDE.md nav mention. /concepts now falls through to the 404 page. The nav link and sitemap entry are removed in #7, which should merge first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN
donbr
added a commit
that referenced
this pull request
Oct 2, 2026
The Concepts page is being removed (its route and file go in #8). Removes the nav item and the /concepts sitemap URL so nothing on the site links to it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN
8 of 9 tasks
ReviewClean, well-scoped PR. Lazy routes with one Things to consider
Security / performance: No concerns. Overall: LGTM. #2 (error boundary) and #5 (merge ordering) are the most worthwhile to address. |
Merged
7 of 8 tasks
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR A from the next-priorities review: two quick wins with no visual change and no content decisions.
321ef04): every page shipped one 2.1 MB bundle (678 KB gzipped) containing ECharts, Cytoscape and Leaflet, which only the visualization pages use.HomePageandNotFoundPagestay eager; Projects, Concepts and the six project routes load withReact.lazyinside oneSuspenseboundary. The fallback renders insideLayout, so the nav and footer stay put while a chunk loads.6027a0c): all routes shared one tab title. Each page now renders<title>Page Name | Don Branson</title>, which React 19 hoists into<head>. The static title inindex.htmlstays as the no-JS fallback.4d570d6):CLAUDE.mdsaid no lazy loading was used; updated, with the title convention noted.Bundle sizes (
vite build)Test plan
Production build served by
vite preview, driven with Playwright:npm run buildpasses;npx tsc -p tsconfig.app.json --noEmitpassesnpm run lint: 0 errors, same 3 pre-existing warningsfeat/redesign) is clean (ProjectsPage.tsxauto-merges)Notes
/assets/projects/situational-awarenessstill pulls ~1 MB of ECharts on demand. Importing only the needed ECharts modules would shrink it; out of scope here.Update: Concepts page removal
0a0ad03deletessrc/pages/ConceptsPage.tsx(generated inb03de6c, opening with a fabricated anecdote), its lazy route, and the CLAUDE.md nav mention./conceptsnow falls through to the 404 page. The nav link and sitemap entry are removed in #7, which should merge first.🤖 Generated with Claude Code
https://claude.ai/code/session_01Ppa5DyJCZ1CowKtz58QARN