Repository navigation
chore: clean up assets, fix fragile code, and clear lint errors - #6
Merged
Merged
Conversation
Performance - Compress headshots to 28-88 KB JPEGs (were up to 1.4 MB). - Remove hero background video (14 MB) and unused old video (46 MB); the hero will be redesigned. - Store project images locally instead of hotlinking Unsplash. Bugs / fragile code - Add catch-all NotFound route (unknown URLs rendered an empty page). - Navbar Contact: scroll via router state instead of a 100 ms setTimeout. - pulse-grid: deterministic pattern instead of Math.random() in render. - Centralize Discord/LinkedIn/Sun Devil Central URLs in src/data/links.js. Lint (10 errors -> 0) - Remove unused imports; comment out hidden-guide imports. - Replace setState-in-effect in Navbar and Resources with derived state. Dead code - Delete react.svg, duplicate src/assets/DQ.png, public/vite.svg, interactive-grid-pattern.jsx, tailwind.config.js (ignored by v4), unused gridFade keyframes, aspect-w-* classes, Navbar scroll listener, unused bradley headshot. Data / content - About: derive Founders from leaders.json; exact headshot filename lookup; stable list keys. - leaders.json: fix typo/capitalization, "" -> null. - index.html: add meta description and Open Graph tags.
This was referenced Oct 1, 2026
Review on #6 measured the Contact link at ~2-2.5s under CPU/network throttling. Profiling (4x CPU, ~1.6 Mbps) showed scrollIntoView is called as soon as About renders (~0.7s); the delay was the *smooth* scroll being starved by a ~1.5s main-thread task from About's DotPattern (~1,000 animated SVG nodes) and IconCloud mounting. (On main the 100 ms timeout fires before About renders under throttling, so it never scrolls at all.) - Jump to the section (behavior: 'auto') instead of animating, so the scroll lands when About renders: Contact from Home now settles in ~1.2-1.5s throttled vs ~2.6-3.2s, with scrolling starting at render. - Memoize DotPattern and IconCloud so About re-renders (navigation state, year select) don't re-reconcile the dot field.
Contributor
Author
Performance resultsLighthouse, mobile preset (simulated slow 4G, 4x CPU), median of 3 runs, local Edge build served with gzip. Compared with
Verdict: faster. Home is about 95% lighter (3,377 KB to 176 KB; video removed, headshots compressed). About's blocking time drops from 2.2 s to 0.8 s, from memoizing Contact navigation (the review comment; 4x CPU, ~1.6 Mbps, 5 runs): with 066dc93, the scroll starts as soon as About renders instead of stalling behind the decorations' long task (settled ~1.2-1.5 s vs ~2.6-3.2 s before the fix). On |
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.
What changed and why
Performance
src/assets/projects/instead of hotlinked from Unsplash.Bugs / fragile code
NotFoundroute: unknown URLs previously rendered an empty page.setTimeout, which could miss on slow devices.pulse-gridusedMath.random()during render, so the pattern changed on re-render. It is now a fixed pattern.src/data/links.js(the Discord invite was hardcoded in 4 places).Lint: 10 errors → 0
Dead code removed
react.svg, duplicatesrc/assets/DQ.png,public/vite.svg,interactive-grid-pattern.jsxtailwind.config.js(ignored by Tailwind v4), unusedgridFadekeyframes, no-opaspect-w-*classesbradleyheadshotData / content
leaders.json, so the founders appear in order Cedric, Ryan, Vaibhav. Headshots are looked up by exact filename, and list keys are stable.leaders.json: "Mathematices" typo, "Junior" capitalization,""→null.index.html: meta description and Open Graph tags, so shared links show a summary.How it was tested
npm run lintpasses with 0 errors;npm run buildpasses.#/does-not-existshows "Page not found", and Projects images load from local assets.Visual changes