Skip to content

chore: improved index page - #1045

Open
avivkeller wants to merge 3 commits into
mainfrom
index
Open

chore: improved index page#1045
avivkeller wants to merge 3 commits into
mainfrom
index

Conversation

@avivkeller

Copy link
Copy Markdown
Member
Screenshot 2026-08-17 at 10 48 33 AM

@avivkeller
avivkeller requested a review from a team as a code owner August 17, 2026 17:48
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
api-docs-tooling Ready Ready Preview Aug 17, 2026 7:05pm

Request Review

@codecov

codecov Bot commented Aug 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.07634% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.35%. Comparing base (7670a78) to head (a661ff6).

Files with missing lines Patch % Lines
packages/react/src/jsx-ast/generate.mjs 60.60% 13 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1045      +/-   ##
==========================================
- Coverage   89.57%   89.35%   -0.22%     
==========================================
  Files         203      201       -2     
  Lines       19116    18876     -240     
  Branches     1790     1763      -27     
==========================================
- Hits        17123    16867     -256     
- Misses       1985     2002      +17     
+ Partials        8        7       -1     

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

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 17, 2026

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
a661ff6 2026-08-17T19:05:23.712Z View logs ↗
  • Build: Failed ❌

View logs ↗
9c18a58 2026-08-17T17:46:40.333Z View logs ↗

@github-actions

Copy link
Copy Markdown
Contributor

api-links Generator

Performance estimate (single CI run)

  • Generation time: 2.3% slower (1.28 s → 1.31 s)
  • Peak memory: 5.0% lower (363.94 MB → 345.75 MB)

legacy-html Generator

Performance estimate (single CI run)

  • Generation time: 1.8% slower (18.77 s → 19.11 s)
  • Peak memory: 6.2% higher (2.22 GB → 2.35 GB)

legacy-json Generator

Performance estimate (single CI run)

  • Generation time: 19.1% faster (6.69 s → 5.41 s)
  • Peak memory: 7.6% higher (1.75 GB → 1.89 GB)

llms-txt Generator

Performance estimate (single CI run)

  • Generation time: 4.4% faster (8.25 s → 7.89 s)
  • Peak memory: 2.1% higher (1.75 GB → 1.78 GB)

orama-db Generator

Output size: 1 file changed · net +1.14 KB

File size details
File Main PR Change
orama-db.json 9.14 MB 9.15 MB +1.14 KB (+0.0%)

Performance estimate (single CI run)

  • Generation time: 16.1% slower (8.15 s → 9.46 s)
  • Peak memory: 5.0% higher (1.77 GB → 1.86 GB)

web Generator

Output size: 151 files changed · net +15.22 KB

File size details
File Main PR Change
assets/style-pZLnVIiN.css 138.17 KB +138.17 KB
assets/style-X45QCql_.css 137.01 KB -137.01 KB (-100.0%)
assets/Layout-DK16eYcB.js 9.69 KB -9.69 KB (-100.0%)
assets/Layout-BghgQ8nm.js 9.63 KB +9.63 KB
assets/404-CEFc8CjS.js 2.56 KB +2.56 KB
assets/addons-CEFc8CjS.js 2.56 KB +2.56 KB
assets/all-CEFc8CjS.js 2.56 KB +2.56 KB
assets/assert-CEFc8CjS.js 2.56 KB +2.56 KB
assets/async_context-CEFc8CjS.js 2.56 KB +2.56 KB
assets/async_hooks-CEFc8CjS.js 2.56 KB +2.56 KB
assets/buffer-CEFc8CjS.js 2.56 KB +2.56 KB
assets/child_process-CEFc8CjS.js 2.56 KB +2.56 KB
assets/cli-CEFc8CjS.js 2.56 KB +2.56 KB
assets/cluster-CEFc8CjS.js 2.56 KB +2.56 KB
assets/console-CEFc8CjS.js 2.56 KB +2.56 KB
assets/crypto-CEFc8CjS.js 2.56 KB +2.56 KB
assets/debugger-CEFc8CjS.js 2.56 KB +2.56 KB
assets/deprecations-CEFc8CjS.js 2.56 KB +2.56 KB
assets/dgram-CEFc8CjS.js 2.56 KB +2.56 KB
assets/diagnostics_channel-CEFc8CjS.js 2.56 KB +2.56 KB
assets/dns-CEFc8CjS.js 2.56 KB +2.56 KB
assets/documentation-CEFc8CjS.js 2.56 KB +2.56 KB
assets/domain-CEFc8CjS.js 2.56 KB +2.56 KB
assets/dtls-CEFc8CjS.js 2.56 KB +2.56 KB
assets/embedding-CEFc8CjS.js 2.56 KB +2.56 KB
assets/environment_variables-CEFc8CjS.js 2.56 KB +2.56 KB
assets/errors-CEFc8CjS.js 2.56 KB +2.56 KB
assets/esm-CEFc8CjS.js 2.56 KB +2.56 KB
assets/events-CEFc8CjS.js 2.56 KB +2.56 KB
assets/ffi-CEFc8CjS.js 2.56 KB +2.56 KB
assets/fs-CEFc8CjS.js 2.56 KB +2.56 KB
assets/globals-CEFc8CjS.js 2.56 KB +2.56 KB
assets/http-CEFc8CjS.js 2.56 KB +2.56 KB
assets/http2-CEFc8CjS.js 2.56 KB +2.56 KB
assets/https-CEFc8CjS.js 2.56 KB +2.56 KB
assets/index-CEFc8CjS.js 2.56 KB +2.56 KB
assets/inspector-CEFc8CjS.js 2.56 KB +2.56 KB
assets/intl-CEFc8CjS.js 2.56 KB +2.56 KB
assets/module-CEFc8CjS.js 2.56 KB +2.56 KB
assets/modules-CEFc8CjS.js 2.56 KB +2.56 KB
assets/n-api-CEFc8CjS.js 2.56 KB +2.56 KB
assets/net-CEFc8CjS.js 2.56 KB +2.56 KB
assets/os-CEFc8CjS.js 2.56 KB +2.56 KB
assets/packages-CEFc8CjS.js 2.56 KB +2.56 KB
assets/path-CEFc8CjS.js 2.56 KB +2.56 KB
assets/perf_hooks-CEFc8CjS.js 2.56 KB +2.56 KB
assets/permissions-CEFc8CjS.js 2.56 KB +2.56 KB
assets/process-CEFc8CjS.js 2.56 KB +2.56 KB
assets/punycode-CEFc8CjS.js 2.56 KB +2.56 KB
assets/querystring-CEFc8CjS.js 2.56 KB +2.56 KB
assets/quic-CEFc8CjS.js 2.56 KB +2.56 KB
assets/readline-CEFc8CjS.js 2.56 KB +2.56 KB
assets/repl-CEFc8CjS.js 2.56 KB +2.56 KB
assets/report-CEFc8CjS.js 2.56 KB +2.56 KB
assets/single-executable-applications-CEFc8CjS.js 2.56 KB +2.56 KB
assets/sqlite-CEFc8CjS.js 2.56 KB +2.56 KB
assets/stream-CEFc8CjS.js 2.56 KB +2.56 KB
assets/stream_iter-CEFc8CjS.js 2.56 KB +2.56 KB
assets/string_decoder-CEFc8CjS.js 2.56 KB +2.56 KB
assets/synopsis-CEFc8CjS.js 2.56 KB +2.56 KB
assets/test-CEFc8CjS.js 2.56 KB +2.56 KB
assets/timers-CEFc8CjS.js 2.56 KB +2.56 KB
assets/tls-CEFc8CjS.js 2.56 KB +2.56 KB
assets/tracing-CEFc8CjS.js 2.56 KB +2.56 KB
assets/tty-CEFc8CjS.js 2.56 KB +2.56 KB
assets/typescript-CEFc8CjS.js 2.56 KB +2.56 KB
assets/url-CEFc8CjS.js 2.56 KB +2.56 KB
assets/util-CEFc8CjS.js 2.56 KB +2.56 KB
assets/v8-CEFc8CjS.js 2.56 KB +2.56 KB
assets/vfs-CEFc8CjS.js 2.56 KB +2.56 KB
assets/vm-CEFc8CjS.js 2.56 KB +2.56 KB
assets/wasi-CEFc8CjS.js 2.56 KB +2.56 KB
assets/webcrypto-CEFc8CjS.js 2.56 KB +2.56 KB
assets/webstreams-CEFc8CjS.js 2.56 KB +2.56 KB
assets/worker_threads-CEFc8CjS.js 2.56 KB +2.56 KB
assets/zlib-CEFc8CjS.js 2.56 KB +2.56 KB
assets/404-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/addons-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/all-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/assert-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/async_context-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/async_hooks-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/buffer-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/child_process-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/cli-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/cluster-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/console-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/crypto-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/debugger-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/deprecations-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/dgram-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/diagnostics_channel-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/dns-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/documentation-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/domain-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/dtls-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/embedding-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/environment_variables-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/errors-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/esm-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/events-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/ffi-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/fs-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/globals-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/http-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/http2-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/https-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/index-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/inspector-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/intl-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/module-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/modules-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/n-api-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/net-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/os-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/packages-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/path-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/perf_hooks-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/permissions-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/process-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/punycode-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/querystring-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/quic-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/readline-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/repl-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/report-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/single-executable-applications-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/sqlite-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/stream-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/stream_iter-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/string_decoder-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/synopsis-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/test-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/timers-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/tls-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/tracing-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/tty-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/typescript-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/url-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/util-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/v8-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/vfs-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/vm-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/wasi-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/webcrypto-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/webstreams-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/worker_threads-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/zlib-BU1VoBd6.js 2.37 KB -2.37 KB (-100.0%)
assets/DocumentationIndex-CZLkuVO1.js 770.00 B +770.00 B
assets/constants-bPj2oMK4.js 115.00 B +115.00 B
all.html 31.74 MB 31.74 MB -106.00 B (-0.0%)

Performance estimate (single CI run)

  • Generation time: 2.1% slower (86.51 s → 88.34 s)
  • Peak memory: 0.0% higher (4.72 GB → 4.72 GB)

@AugustinMauroy

Copy link
Copy Markdown
Member
Capture d’écran 2026-08-17 à 22 24 07

you should also transform description

@AugustinMauroy

Copy link
Copy Markdown
Member
Capture d’écran 2026-08-17 à 22 25 56

@MattIPv4

Copy link
Copy Markdown
Member

Can we maybe clamp the descriptions to 3 or 4 lines? And perhaps allow the rest to show via overflow (not shifting the grid layout) on hover?

Can we move the cards up to be before the contributing + stability index headings? I think for most folks hitting the docs, the primary action/path is going to be wanting to find a section of the docs?

const ariaLabel = STABILITY_TOOLTIPS[stability]
? `Stability: ${STABILITY_TOOLTIPS[stability]}`
: undefined;
const label = STABILITY_LABELS[stability];

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
const label = STABILITY_LABELS[stability];
const [label] = STABILITY_LABELS[stability] ?? [];

tabIndex={0}
>
{STABILITY_LABELS[stability]}
{label?.[0]}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The suggestion I made on line 25 makes this line better imo

* @see https://nodejs.org/api/documentation.html#stability-index
*/
export const STABILITY_KINDS = ['error', 'warning', 'default', 'info'];
export const STABILITY_LABELS = [

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Don't we have already these constants somewhere? Like on @node-core/ui-components?

*
* @see https://nodejs.org/api/documentation.html#stability-index
*/
export const STABILITY_KINDS = ['error', 'warning', 'default', 'info'];

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'd argue this is STABILITY_TYPES and I'd probably argue the Labels Array and Kinds should be a Map where the pair key is the Label and the value the Badge Type. Also adding a comment that these = type of UI Badges we have and maybe ensure it follows types that are supported by our Badges would also be good.

name: 'CodeTabs',
source: resolve(ROOT, './ui/components/CodeTabs'),
},
DocumentationIndex: {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this DocumentationIndex sort of component just for Node, or going to be kinda part of standard doc-kit components? I feel that all the components doc-kit exposes on our web generator should be documented under the web generator docs [...]

I also feel tha this name "DocumentationIndex" doesn't really say what this component renders, can we have a more descriptive name for the component, tgat'd b great

@avivkeller avivkeller Aug 18, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

It's a standard doc kit component. The name DocumentationIndex is fairly descriptive of what the component does: Documentation Index

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I unfortunately disagree. "Documentation Index" isn't fairly descriptive, and doesn't say what is rendered. What is in this "documentation index"? I feel that a proper name is "StabilityOverview" or "DocumentationModulesOverview" or something more descriptive.

},
};

// `<!-- DOCUMENTATION_INDEX -->` comment in a source document = a stability index

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: add a todo that we aim to remove this from node-core, or that it follows our standard doc-kit YAML syntax.

We might need to expand our spec on the supported type of slots, sinca our YAML snippets are "slots" that add metadata to render certain things, we might as well have something that is either just MD-compatible/doc-kit spec compatible or MDX-compatible (even if strictly not MDX)...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Or we outright just say that doc-kit spec extends CommonMark and the MDX spec. 🤷 since we're already using remark [...], recma [...] probably we could just support mdx, and support .mdx extensions to files in case they want to add MDX content.

I think that makes much sense and allows more customization to the pages by downstream consumers of doc-kit.

@avivkeller avivkeller Aug 18, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We do support MDX. I can probably replace the comment with an MDX component.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Cool, that can be follow-up as require change on node core.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

-1 on a follow-up. I'll do it here, and update our beta script to make that change, and that can be the TODO, rather than an implementation that is going to be replaced based on one consumer's need.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't understand. The source YAML annotation is in node core. I don't think that we should do a hack here to go around that. We can proceed as is, and then add the feature here, and then migrate it over there.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'd rather make a "hack" to replace the <!-- --> syntax of Node core with a <XYZ /> to go around that then write the entire component in a format that will be changed in a follow-up

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I understand you'd do that on a bash script, but I'm unsure about the precedent of that, plus that feels more like doing a monkey patch. I'm not particularly against, just saying that it isn't a good thing to do in general.

// Sections tagged with a `<!-- DOCUMENTATION_INDEX -->` comment (e.g. in
// the `index` document) receive the Stability Overview of all modules.
injectDocumentationIndex(input, moduleInput);
// Sections tagged with a `<!-- DOCUMENTATION_INDEX -->` build an index

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

See, this is what I don't like. I hope in the future, based on my comment above can alllows us to avoid such specific logic for this sort of scenarios 😅

*
* @param {Array<import('@doc-kit/core/generators/metadata/types').MetadataEntry>} moduleEntries
*/
const buildDocumentationIndex = moduleEntries =>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I genuinely feel we gotta call this something else, I'd also argue it shouldn't be the responsibiliy of this generator to take care of this, but the web generator. That said, I'm fine as this as a temporary solution. But we gotta add deprecated and todo marks and open an issue to keep track of remaining changes.

@ovflowd ovflowd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm fine SGTM'ing this, but with big caveats that this is temporary and requires proper changes on the long-term 🙇

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.

4 participants