Skip to content

Conversation

@avivkeller
Copy link
Member

@avivkeller avivkeller commented Oct 18, 2025

This PR moves a few components from 'use client' to RSC.

@Copilot Copilot AI review requested due to automatic review settings October 18, 2025 19:18
@avivkeller avivkeller requested a review from a team as a code owner October 18, 2025 19:18
@vercel
Copy link

vercel bot commented Oct 18, 2025

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

Project Deployment Preview Updated (UTC)
nodejs-org Ready Ready Preview Oct 19, 2025 9:52pm

💡 Enable Vercel Agent with $100 free credit for automated AI reviews

Copy link
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

This PR converts several React components from client-side to server-side components by removing 'use client' directives and refactoring interactive elements to support server-side rendering.

  • Removed 'use client' directives from NavBar, Separator, Supporters, and LinkTabs components
  • Replaced interactive Select component with StatelessSelect to eliminate client-side state management
  • Simplified LinkTabs implementation by removing router navigation logic

Reviewed Changes

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

Show a summary per file
File Description
packages/ui-components/src/Containers/NavBar/index.tsx Removed 'use client' directive to enable server-side rendering
packages/ui-components/src/Common/Separator/index.tsx Removed 'use client' directive to enable server-side rendering
packages/ui-components/src/Common/Select/index.module.css Added z-index styling to dropdown element
packages/ui-components/src/Common/BaseLinkTabs/index.tsx Replaced Select with StatelessSelect and removed onSelect prop
packages/ui-components/src/Common/BaseLinkTabs/index.module.css Simplified styling by removing nested selector rules
apps/site/components/Common/Supporters/index.tsx Removed 'use client' directive to enable server-side rendering
apps/site/components/Common/LinkTabs.tsx Removed 'use client' directive and router navigation logic

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@codecov
Copy link

codecov bot commented Oct 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.44%. Comparing base (843297a) to head (81afcb8).
⚠️ Report is 5 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8239   +/-   ##
=======================================
  Coverage   76.44%   76.44%           
=======================================
  Files         115      115           
  Lines        9643     9643           
  Branches      317      317           
=======================================
  Hits         7372     7372           
  Misses       2270     2270           
  Partials        1        1           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@avivkeller
Copy link
Member Author

avivkeller commented Oct 18, 2025

Latest Build on this branch

  Route (app)                                                       Size  First Load JS  Revalidate  Expire
  ┌ ○ /_not-found                                                11.9 kB         219 kB
  ├ ○ /[locale]                                                      0 B         536 kB
  ├ ○ /[locale]/[...path]                                         240 kB         536 kB
  ├ ○ /[locale]/blog/[...path]                                       0 B         536 kB
  ├ ○ /[locale]/download/archive/[version]                           0 B         536 kB
  ├ ● /[locale]/feed/[feed]                                          0 B            0 B          5m      1y
  ├   ├ /en/feed/blog.xml                                                                        5m      1y
  ├   ├ /en/feed/releases.xml                                                                    5m      1y
  ├   └ /en/feed/vulnerability.xml                                                               5m      1y
  ├ ● /[locale]/next-data/og/[category]/[title]                      0 B            0 B
  ├   └ /en/next-data/og/announcement/Run JavaScript Everywhere
  ├ ○ /robots.txt                                                    0 B            0 B
  └ ○ /sitemap.xml                                                   0 B            0 B
  + First Load JS shared by all                                   213 kB
    ├ chunks/339ca6a45c4a307a.js                                 14.4 kB
    ├ chunks/5e109b7e2c8df7e0.js                                 12.3 kB
    ├ chunks/73b8b852d483aaf0.js                                 17.7 kB
    ├ chunks/76293018cad4ef55.js                                   28 kB
    ├ chunks/a9d028b25a130731.js                                 59.2 kB
    ├ chunks/b87b961db7376771.js                                 13.1 kB
    ├ chunks/ed216a47cebb261f.js                                 19.3 kB
    └ other shared chunks (total)                                48.5 kB

Latest build on main

  Route (app)                                                       Size  First Load JS  Revalidate  Expire
  ┌ ○ /_not-found                                                11.9 kB         219 kB
  ├ ○ /[locale]                                                      0 B         536 kB
  ├ ○ /[locale]/[...path]                                         240 kB         536 kB
  ├ ○ /[locale]/blog/[...path]                                       0 B         536 kB
  ├ ○ /[locale]/download/archive/[version]                           0 B         536 kB
  ├ ● /[locale]/feed/[feed]                                          0 B            0 B          5m      1y
  ├   ├ /en/feed/blog.xml                                                                        5m      1y
  ├   ├ /en/feed/releases.xml                                                                    5m      1y
  ├   └ /en/feed/vulnerability.xml                                                               5m      1y
  ├ ● /[locale]/next-data/og/[category]/[title]                      0 B            0 B
  ├   └ /en/next-data/og/announcement/Run JavaScript Everywhere
  ├ ○ /robots.txt                                                    0 B            0 B
  └ ○ /sitemap.xml                                                   0 B            0 B
  + First Load JS shared by all                                   213 kB
    ├ chunks/339ca6a45c4a307a.js                                 14.4 kB
    ├ chunks/5e109b7e2c8df7e0.js                                 12.3 kB
    ├ chunks/73b8b852d483aaf0.js                                 17.7 kB
    ├ chunks/a9d028b25a130731.js                                 59.2 kB
    ├ chunks/af2961035bd80c04.js                                   28 kB
    ├ chunks/b87b961db7376771.js                                 13.1 kB
    ├ chunks/ed216a47cebb261f.js                                 19.3 kB
    └ other shared chunks (total)                                48.5 kB

@ovflowd
Copy link
Member

ovflowd commented Oct 19, 2025

Latest Build on this branch

  Route (app)                                                       Size  First Load JS  Revalidate  Expire
  ┌ ○ /_not-found                                                11.9 kB         219 kB
  ├ ○ /[locale]                                                      0 B         536 kB
  ├ ○ /[locale]/[...path]                                         240 kB         536 kB
  ├ ○ /[locale]/blog/[...path]                                       0 B         536 kB
  ├ ○ /[locale]/download/archive/[version]                           0 B         536 kB
  ├ ● /[locale]/feed/[feed]                                          0 B            0 B          5m      1y
  ├   ├ /en/feed/blog.xml                                                                        5m      1y
  ├   ├ /en/feed/releases.xml                                                                    5m      1y
  ├   └ /en/feed/vulnerability.xml                                                               5m      1y
  ├ ● /[locale]/next-data/og/[category]/[title]                      0 B            0 B
  ├   └ /en/next-data/og/announcement/Run JavaScript Everywhere
  ├ ○ /robots.txt                                                    0 B            0 B
  └ ○ /sitemap.xml                                                   0 B            0 B
  + First Load JS shared by all                                   213 kB
    ├ chunks/339ca6a45c4a307a.js                                 14.4 kB
    ├ chunks/5e109b7e2c8df7e0.js                                 12.3 kB
    ├ chunks/73b8b852d483aaf0.js                                 17.7 kB
    ├ chunks/76293018cad4ef55.js                                   28 kB
    ├ chunks/a9d028b25a130731.js                                 59.2 kB
    ├ chunks/b87b961db7376771.js                                 13.1 kB
    ├ chunks/ed216a47cebb261f.js                                 19.3 kB
    └ other shared chunks (total)                                48.5 kB

Latest build on main

  Route (app)                                                       Size  First Load JS  Revalidate  Expire
  ┌ ○ /_not-found                                                11.9 kB         219 kB
  ├ ○ /[locale]                                                      0 B         536 kB
  ├ ○ /[locale]/[...path]                                         240 kB         536 kB
  ├ ○ /[locale]/blog/[...path]                                       0 B         536 kB
  ├ ○ /[locale]/download/archive/[version]                           0 B         536 kB
  ├ ● /[locale]/feed/[feed]                                          0 B            0 B          5m      1y
  ├   ├ /en/feed/blog.xml                                                                        5m      1y
  ├   ├ /en/feed/releases.xml                                                                    5m      1y
  ├   └ /en/feed/vulnerability.xml                                                               5m      1y
  ├ ● /[locale]/next-data/og/[category]/[title]                      0 B            0 B
  ├   └ /en/next-data/og/announcement/Run JavaScript Everywhere
  ├ ○ /robots.txt                                                    0 B            0 B
  └ ○ /sitemap.xml                                                   0 B            0 B
  + First Load JS shared by all                                   213 kB
    ├ chunks/339ca6a45c4a307a.js                                 14.4 kB
    ├ chunks/5e109b7e2c8df7e0.js                                 12.3 kB
    ├ chunks/73b8b852d483aaf0.js                                 17.7 kB
    ├ chunks/a9d028b25a130731.js                                 59.2 kB
    ├ chunks/af2961035bd80c04.js                                   28 kB
    ├ chunks/b87b961db7376771.js                                 13.1 kB
    ├ chunks/ed216a47cebb261f.js                                 19.3 kB
    └ other shared chunks (total)                                48.5 kB

Can we have a CI step that comments the build size differences between runs?

Copy link
Member

@bjohansebas bjohansebas left a comment

Choose a reason for hiding this comment

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

LGTM!

@ovflowd
Copy link
Member

ovflowd commented Oct 19, 2025

I like the commit name "MOAR SERVER"

@ovflowd
Copy link
Member

ovflowd commented Oct 19, 2025

I'm fast-tracking this :)

@ovflowd ovflowd added the fast-track Fast Tracking PRs label Oct 19, 2025
@ovflowd ovflowd added this pull request to the merge queue Oct 19, 2025
Merged via the queue into main with commit d41a9f0 Oct 19, 2025
17 checks passed
@ovflowd ovflowd deleted the rsc branch October 19, 2025 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fast-track Fast Tracking PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants