Skip to content

Conversation

@NicholasKissel
Copy link
Member

No description provided.

@vercel
Copy link

vercel bot commented Nov 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
rivet-site Error Error Nov 15, 2025 2:22am
3 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
rivet-cloud Ignored Ignored Nov 15, 2025 2:22am
rivet-inspector Ignored Ignored Nov 15, 2025 2:22am
rivetkit-serverless Skipped Skipped Nov 15, 2025 2:22am

Copy link
Member Author

NicholasKissel commented Nov 15, 2025

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add the label merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@claude
Copy link

claude bot commented Nov 15, 2025

PR Review: v4 Website Changes

Overall Assessment: This is a comprehensive website redesign with modern interactive components. The code quality is generally good, but there are several areas that need attention before merging.

CRITICAL ISSUES:

  1. Memory Leak in NewHeroSection.tsx (lines 192-232)
    The useEffect hook in ActorAnimation has missing cleanup that will cause memory leaks. The effect depends on step state that changes within the timeout itself, creating a new timer on every step change without properly cleaning up when component unmounts during mid-sequence.

Fix: Track if component is mounted and prevent state updates after unmount.

  1. Unused Component (line 128)
    DatabaseNode component is defined but never used. Either remove it or use it instead of the inline database node markup at lines 322-331.

PERFORMANCE CONCERNS:

  1. Injecting Styles via dangerouslySetInnerHTML (lines 6-113)
    Issues: No deduplication if multiple instances mount, SSR/CSR mismatch, CSS re-parsed on every render, external Google Fonts import adds network request.
    Recommendation: Move all styles to v2.css or CSS module.

  2. Missing Animation Cleanup in NewFeaturesBento (lines 6-30)
    Event listeners added to .bento-box elements but the return statement is inside forEach instead of useEffect. Cleanup never runs - memory leak.

  3. RequestAnimationFrame Leak in NewUseCases (lines 41-66)
    Old animation frame could still run when effect re-executes with new dependencies.

CODE QUALITY ISSUES:

  1. Hardcoded Magic Numbers (lines 164-165, 178-179)
    Magic pixel values like 366px, 211px, 376px make code fragile. Use constants or CSS custom properties.

  2. String-Based State Management (line 189)
    Using string literals for state is error-prone. Consider TypeScript enums or constants.

  3. Accessibility Issues

  • Missing aria-label on SVG icons
  • No keyboard navigation for drag scrolling
  • No prefers-reduced-motion support

POSITIVE OBSERVATIONS:

  • Clean component structure
  • Proper TypeScript usage
  • Responsive design with Tailwind
  • Smooth animations with good timing
  • Proper use of IntersectionObserver

ACTION ITEMS:

  1. Fix memory leak in ActorAnimation (BLOCKER)
  2. Fix event listener cleanup in NewFeaturesBento (BLOCKER)
  3. Move inline styles to CSS files
  4. Add accessibility features
  5. Remove unused DatabaseNode component

Estimated effort: 1-2 hours

Let me know if you need help implementing these fixes!

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.

2 participants