nodejs.org
nodejs.org copied to clipboard
[nit] Select ARM64 by default in the dropdown if user is visiting from M1
Enter your suggestions in details:
Is your feature request related to a problem? Please describe.
Not a big issue, but I was browsing new redesigned website from M1 (on ARM architecture) and noticed that X64 was selected in the dropdown by default for prebuilt installer and binaries
https://nodejs-org-git-meta-remove-legacy-website-code-openjs.vercel.app/en/download
Prebuilt Installer
Prebuilt Binaries
Describe the solution you'd like
Select the architecture of visitors machine, if it's detectable from JavaScript.
For example, it's detectable from experimental await navigator.userAgentData.getHighEntropyValues(['architecture']) API call.
The website uses the experimental API to get bitness
https://github.com/nodejs/nodejs.org/blob/04fd007aa4528b88abcd0722c1c6ff1788cb08cc/util/getBitness.ts#L8-L10
Describe alternatives you've considered
N/A, as the user can explicitly select ARM
option from the dropdown even if X64
is selected by default.
The architecture might not matter in the dropdown for macOS, as both binaries link to the same .pkg
installer.
Enter your suggestions in details:
Is your feature request related to a problem? Please describe.
Not a big issue, but I was browsing new redesigned website from M1 (on ARM architecture) and noticed that X64 was selected in the dropdown by default for prebuilt installer and binaries
nodejs-org-git-meta-remove-legacy-website-code-openjs.vercel.app/en/download
Prebuilt Installer Prebuilt Binaries
Describe the solution you'd like
Select the architecture of visitors machine, if it's detectable from JavaScript.
For example, it's detectable from experimental await navigator.userAgentData.getHighEntropyValues(['architecture']) API call.
The website uses the experimental API to get
bitness
https://github.com/nodejs/nodejs.org/blob/04fd007aa4528b88abcd0722c1c6ff1788cb08cc/util/getBitness.ts#L8-L10
Describe alternatives you've considered
N/A, as the user can explicitly select
ARM
option from the dropdown even ifX64
is selected by default.
Feel free to create a PR or patch to use the right bitness. We use the getBitness
in that button but I believe the Bitness doesn't say the architecture (i.e. ARM)
Because the architecture is ARM and the bitness is 64. So, technically, the result is correct.
Pretty much an idea for a PR is to introduce the "getArchitecture" utility and embed it on our util that detects the UserOS (https://github.com/nodejs/nodejs.org/blob/main/hooks/react-client/useDetectOS.ts)
So you could add an extra field "architecture" that would then be used on our BitnessDropdown (https://github.com/nodejs/nodejs.org/blob/3808cb7682d50c8876791e356b3e486196c68934/components/Downloads/Release/BitnessDropdown.tsx#L9)
(Which is actually an architecture + bitness dropdown...)
I added good first issue
and website redesign
labels if anyone else wants to give it a try.
I can take it
I have fixed the issue and have also created a PR. Please have a look