Skip to content

Centralize site content and migrate to TypeScript and Tailwind - #108

Merged
bgar324 merged 3 commits into
masterfrom
refactor-contributor-architecture
Sep 11, 2026
Merged

bgar324 merged 3 commits into
masterfrom
refactor-contributor-architecture

Conversation

@bgar324

@bgar324 bgar324 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Scope

Contributor-focused architecture and runtime refactor, not a redesign. Based on the deployed PR #107 merge, f435aca.

  • One registry for 35 people, with 45 ordered team assignments and eight historical speaking roles. Names, titles, profile links, portrait associations, missing-photo slots, and ordering are preserved.
  • Year-owned event data and shared resources/registration renderers. Existing archive routes and historical wording remain. One EVENT_ROUTES table now drives routing and the Resources menu.
  • Strict TypeScript, React/DOM 19.3.0, Router 7.18.3, Tailwind 4.3.3. TypeScript 6.0.3 is the latest stable compatible with the chosen linter. The already-shipped Vite/Node24/Vitest modernization remains.
  • Bootstrap, React Bootstrap, Sass, prop-types, react-ga, classnames, history, old JSX compatibility configuration, copied annual implementations, and proven dead code are removed. Native shared controls and semantic Tailwind styling replace them. Preflight is explicitly excluded; existing breakpoints and Sass cascade effects are preserved.
  • Existing CI extended with types, lint, formatting, content validation, and 34 Chromium smoke cases. Contributor ownership/edit instructions and verification tools are included.

Verification

  • Clean npm ci, strict typecheck, lint, formatting, 12 Vitest tests, content checks, image checks, production build, and dependency audit passed locally. Audit reported zero vulnerabilities.
  • Image pipeline: 59 sources, 86 variants; zero re-encoded sources. All 102 public image/PDF/icon URLs and SHA-256 hashes are unchanged. 404.html and CNAME remain byte-identical.
  • Baseline captured before CSS edits. Final comparison covers 14 routes at 15 widths: 320, 390, 575/576/577, 767/768/769, 991/992/993, 1199/1200/1201, and 1440px. All 210 geometry/style/content comparisons pass; maximum observed geometry delta is 0.03125 CSS pixels against a 0.05px ceiling.
  • All 210 PNG pairs compared. No dimension changes; 121 pairs byte-identical, 142 with zero flagged pixels. Largest flagged fraction is 0.005645% at pixelmatch threshold 0.1 with antialiasing excluded. This is not a claim of universal pixel identity.
  • 34 Chromium smoke cases pass, including slow/failing carousel images, aliases, mobile menu/hash repeats, video activation, linked documents, and a meaningful Back-scroll assertion. WebKit and Firefox each pass 34 route/interaction scenarios, including actual Back reading-position restoration.
  • 25 hover/focus/video/carousel states compared. Autoplay advance/pause/resume, intermediate 600ms slide transforms, interrupted menu operations, and dropdown keyboard boundaries were exercised against the baseline.
  • Cold Vite startup and live JSX HMR update/restore pass without document reload. A separate dummy-ID build processes the real retained analytics.js with one tracker/script, expected pageviews and outbound attribution, and collection blocked.
  • Independent runtime and content/style reviews completed. Both concrete findings were fixed and received targeted approvals. A separately discovered dropdown keyboard regression has a test that failed against the affected build and passes after the fix.

Review evidence

Limits and boundaries

Browser viewports are emulated; Playwright WebKit is not native Safari or a physical iPhone. External links are syntax-checked rather than universally contacted. Analytics verification does not prove production-property ingestion. CSS gzip decreases from 28.23KB to 8.41KB; application JS gzip increases from 99.60KB to 112.98KB with the newer runtime. These are build sizes, not field-performance claims.

No merge, deployment, hosting, secret, or branch-protection change. The user-owned src/image.png remains untracked and unchanged; local handoffs/ are not included. GitHub CI status will be recorded after the new PR run completes.

@bgar324

bgar324 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator Author

Final-head CI passed for 4d4e9cb: https://github.com/exploretech-la/website/actions/runs/34592274097 . The read-only verify job completed installation, strict types, lint, formatting, content/image checks, regression tests, production build, and Chromium smoke. The acceptance ledger is complete. No merge, deployment, hosting, secret, or branch-protection change was performed.

@bgar324
bgar324 merged commit b57ae7d into master Sep 11, 2026
1 check passed
@bgar324

bgar324 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator Author

Merged with fresh authorization as b57ae7d. Production publishing passed: https://github.com/exploretech-la/website/actions/runs/34593459647 . GitHub Pages deployment passed: https://github.com/exploretech-la/website/actions/runs/34593503606 . Live HTML matches the published release assets. Production smoke passed all 13 routes with expected content and links, team counts and missing-photo slots, both /our_team aliases, mobile menu/cross-route hash navigation, carousel selection, keyboard video activation with preserved geometry, and 8 linked document/map URLs. No uncaught application exceptions. Automated smoke blocked tracking/player requests; provider playback and analytics ingestion were not asserted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant