Skip to content

Conversation

@avivkeller
Copy link
Member

This PR moves all the partner page logic to the server side, reducing the size of the client bundle

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

vercel bot commented Dec 19, 2025

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

Project Deployment Review Updated (UTC)
nodejs-org Ready Ready Preview Dec 20, 2025 3:01pm

@github-actions
Copy link
Contributor

👋 Codeowner Review Request

The following codeowners have been identified for the changed files:

Team reviewers: @nodejs/nodejs-website

Please review the changes when you have a chance. Thank you! 🙏

@github-actions
Copy link
Contributor

Note

Your Pull Request seems to be updating Translations of the Node.js Website.

Whilst we appreciate your intent; Any Translation update should be done through our Crowdin Project.
We recommend giving a read on our Translation Guidelines.

Thank you!

@codecov
Copy link

codecov bot commented Dec 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.84%. Comparing base (3f57d25) to head (a223af8).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8431      +/-   ##
==========================================
+ Coverage   73.64%   73.84%   +0.19%     
==========================================
  Files         107      108       +1     
  Lines        9161     9215      +54     
  Branches      312      312              
==========================================
+ Hits         6747     6805      +58     
+ Misses       2412     2408       -4     
  Partials        2        2              

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

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 successfully migrates partner page logic from client-side to server-side rendering to reduce the client bundle size. The refactoring consolidates two separate components (PartnersIconList and PartnersLogoList) into a single unified PartnersList component, updates dependency versions (Next.js 16.0.10 → 16.1.0, Vercel packages), and fixes several bugs in the Indonesian localization files.

  • Migrates partner rendering from client-side ('use client') to server-side ('use server') using Next.js 'use cache' directive
  • Consolidates PartnersIconList and PartnersLogoList into a single PartnersList component with a size prop
  • Updates type names from plural to singular (Partners → Partner, Supporters → Supporter)

Reviewed changes

Copilot reviewed 50 out of 52 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
pnpm-lock.yaml Updates Next.js from 16.0.10 to 16.1.0, Vercel analytics/insights packages, and related dependencies
apps/site/package.json Bumps Next.js and Vercel package versions to match lock file
apps/site/util/partners/index.tsx Removes client-side partner icon creation utilities (moved server-side)
apps/site/util/array.ts Makes shuffle function generic to work with any type, not just Partners
apps/site/types/partners.ts Renames types to singular form, removes RandomPartnerListConfig type
apps/site/next.partners.constants.tsx Removes client-side partner constants (replaced by server-side provider)
apps/site/next-env.d.ts Updates Next.js types reference path for dev environment
apps/site/next-data/providers/partners.ts Adds new server-side provider with 'use cache' directive
apps/site/next-data/generators/partners.mjs Implements server-side partner list generation with shuffling
apps/site/mdx/components.mjs Updates component exports from PartnersIconList/PartnersLogoList to PartnersList
apps/site/hooks/react-client/usePartnersList.ts Removes client-side hook (no longer needed)
apps/site/components/Common/Supporters/index.tsx Updates type reference from Supporters to Supporter
apps/site/components/Common/Partners/utils.ts Removes client-side utility functions
apps/site/components/Common/Partners/index.tsx New unified server component replacing separate icon/logo components
apps/site/components/Common/Partners/index.module.css New styles for unified component
apps/site/components/Common/Partners/PartnerButton/index.tsx New shared button component for both sizes
apps/site/components/Common/Partners/PartnerButton/index.module.css Consolidates styles from old PartnerIcon/PartnerLogo components
apps/site/components/Common/Partners/PartnersLogoList/* Removes old client-side logo list component
apps/site/components/Common/Partners/PartnersIconList/* Removes old client-side icon list component
apps/site/components/Common/Partners/PartnerLogo/* Removes old logo component
apps/site/components/Common/Partners/PartnerIcon/* Removes old icon component
apps/site/pages/*/index.mdx Updates component usage from PartnersIconList to PartnersList across all locales
apps/site/pages//download/.mdx Updates component usage from PartnersLogoList to PartnersList with size="big"
apps/site/pages/*/about/partners.mdx Updates component usage and fixes category/sort prop bugs in Indonesian locale
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 19, 2025

📦 Build Size Comparison

Summary

Metric Value
Old Total Size 4.34 MB
New Total Size 3.93 MB
Delta -418.40 KB (-9.41%)

Changes

➕ Added Assets (11)
Name Size
.next/static/chunks/40a6251f483a3fd9.js 61.69 KB
.next/static/chunks/45b88b380febe3f1.js 101.82 KB
.next/static/chunks/2998b23fad7cdb6a.js 205.02 KB
.next/static/chunks/7d19e315e828bf5f.js 101.82 KB
.next/static/chunks/1487aa694e66d139.js 8.39 KB
.next/static/chunks/a017a80ed43c7efc.js 101.82 KB
.next/static/chunks/1a66ceb2d45e755e.js 33.35 KB
.next/static/chunks/a86d8a838b253094.js 574.80 KB
.next/static/chunks/84b4b6c5f0c7e49f.js 101.82 KB
.next/static/chunks/1d4d9fa142dc266b.js 33.35 KB
.next/static/chunks/d7e5ee5a73635317.js 574.80 KB
➖ Removed Assets (11)
Name Size
.next/static/chunks/9291518bee3bf771.js 61.69 KB
.next/static/chunks/472c79f905eeb9d5.js 101.79 KB
.next/static/chunks/eff63a48093908c2.js 204.26 KB
.next/static/chunks/39fc6610b9d853cf.js 101.79 KB
.next/static/chunks/fc4ebb7566380f8c.js 1.59 KB
.next/static/chunks/c3e76e8ccf908f28.js 101.79 KB
.next/static/chunks/40481e1be1d4ab40.js 31.98 KB
.next/static/chunks/f861a43df79a9d1a.js 789.19 KB
.next/static/chunks/d90f22899206d0e3.js 101.79 KB
.next/static/chunks/a966f28e2035f6d8.js 31.98 KB
.next/static/chunks/616628337ae9b55e.js 789.19 KB

@avivkeller avivkeller marked this pull request as draft December 19, 2025 23:56
@avivkeller
Copy link
Member Author

(Converting to Draft to implement the weight logic)

Copy link
Member

@ovflowd ovflowd left a comment

Choose a reason for hiding this comment

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

SGTM!

@avivkeller
Copy link
Member Author

cc @nodejs/marketing, as this changes the algorithm from randomly displaying partners to sorting partners based on their position in the JSON file.

Their position in the JSON file has been dictated by the previous weight value, which was previously not used in the random order function.

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.

3 participants