Description
We are planning to introduce a simplified downloads page, similar to the one that existed prior to the Website Redesign Initiative (https://web.archive.org/web/20200214205836/https://nodejs.org/en/download/).
This new page will be statically generated using dynamic URLs from next.dynamic.constants.mjs
. The URLs will be structured in the format /en/download/{major}
, allowing us to generate one route for each major version. Each route will display all download options without package managers; it will include only prebuilt binaries, installers, source links, and alternative links.
The top section of the page will resemble the screenshot above and will feature links for the latest minor release of each major version. Below this section, there will be a table with one row for each minor release, containing columns with the relevant download links (for Windows, macOS, Linux, etc.). The link labels will include terms such as "x64," "x86," and others.
This page will be generated in Incremental Static Regeneration (ISR) mode, on demand for each major version request. Additionally, the page will be linked within the new downloads section if we detect that JavaScript is disabled.
- Create a new page at
pages/en/download/simplified.md
- Select an appropriate layout in the Markdown front matter that aligns with the intended design
- It may be necessary to create a new layout called "download-simple"
- Add
simplified.md
to the ignore list for static pages (next.dynamic.constants.mjs
) - Include the same page in the dynamic array generation, mapping it as
:locale/download/{majorVersion}
- Use
usePathname
in the layout to extract the version segment of the path - Utilize providers to retrieve the major version metadata for generating the table with major version data
Implement a list of "minorVersions" in the release generator, which should consist of version strings and their corresponding release dates onlyAdd a table that displays all minor versions and their respective download links for each installation method in separate columns.
Metadata
Metadata
Assignees
Type
Projects
Status
Activity
auxfix commentedon Mar 5, 2025
I will give it a try.
Already started, honestly.
auxfix commentedon Mar 11, 2025
Hi guys, I've spent some time trying to figure out how MD templates work in conjunction with ISR and dynamic routing, but I haven't fully grasped it yet. Do we have any related documentation, or could someone point me to an article or video that explains this pattern? Because I've never worked with it before.
feat(website/nodejs#7443): first steps
feat(website/nodejs#7443): progress on simplified download layout
feat(website/nodejs#7443): figuring out how navigation works
feat(website/nodejs#7443): add simple static layout
auxfix commentedon Jun 18, 2025
Hi guys. Excuse me for the long silence. I have to drop this task unfortunately.
avivkeller commentedon Jun 18, 2025
No worries! @canerakdas is already working on this :-)
ovflowd commentedon Jun 18, 2025
We actually do have a new docs/ folder that should have stuff there. But maybe we could improve said documentation? We appreciate anyways your effort here @auxfix <3