nodejs.org icon indicating copy to clipboard operation
nodejs.org copied to clipboard

Card Sort Session Results

Open avivkeller opened this issue 3 months ago • 3 comments

These are the results of the Card Sort Session prepared by @avivkeller and @bmuenzenmeyer at the 2025 Cambridge Node.js Collaborators' Summit.

Links

General Concerns

  • The navigation is too linear, however, there are many cases where this harms the reader (i.e. when a document contains a sub-document, like "Flame Graphs")

  • The order of categories prioritizes categories that might not be as helpful to the reader (i.e. Test Runner should be greater than Diagnostics)

  • Many articles have their own "Intro" page, maybe a general "Intro" section would be nice?

  • A lot of articles are out-of-date, which leads to incorrect content

    • Additionally, many articles can be superceded (i.e. ECMAScript 2015 is almost 11 years old)
  • There is a lot of content, and it's doubtful that many users have read the entire thing.

  • It would be nice to add an entire "HTTP" section, with fetch(), node:http, and the various other ways to make network requests

Group Sort

[!Warning] Not every article on the site was used in this sort.

Group A

  • Flow Control/Async Events
    • Don't Block the Event Loop
    • Overview of Blocking vs Non-Blocking
    • Understanding process.nextTick()
    • The Node.js Event Loop
    • How to use streams
    • Backpressuring in streams
    • JavaScript Asynchronous Programming and Callbacks
    • Asynchronous Flow Control
    • Discover JavaScript Timers
    • Understanding setImmediate()
  • FS
    • Working with folders in Node.js
    • Writing files with Node.js
    • Reading Files with Node.js
    • Working with file descriptors in Node.js
  • Types + Syntax
    • ECMAScript 2015 (ES6) and beyond
    • Introduction to TypeScript
    • Running TypeScript code using transpilation
    • Running TypeScript Natively
    • Running TypeScript with a runner
  • Resources
    • Mentoring
    • Calendar
    • Slack
    • Free JS Security Training
    • Security Best Practices
  • Intro (Advanced)
    • Publishing a package
    • Node.js with WebAssembly
    • Now to publish a Node-API package
    • An introduction to the npm package manager
  • Intro
    • Introduction to Node.js
    • Differences between Node.js and the browser
    • How much JavaScript do you need to kow to use Node.js
    • Run Node.js scripts from the command line
    • Output to the command line using Node.js
    • Accept input from the command line Node.js
    • How to read environment variables from Node.js
  • Testing + Debugging
    • User Journey[^1]
    • Live Debugging
    • Flame Graphs
    • Profiling Node.js Applications
    • Mocking in tests
    • Anatomy of an HTTP Transaction
    • Using Node.js's test runner
    • Discovering Node.js's test runner
  • Diagnostics
    • Debugging Node.js
    • Poor Performance
    • The V8 JavaScript Engine
    • ABI Stability
    • Memory

Group B

  • Node.js in Depth
    • Performance
      • Profiling Node.js Applications
      • Don't Block the Event Loop
      • Poor Performance
      • Memory
      • User Journey[^1]
      • Live Debugging
      • Flame Graphs
    • Core Node.js
      • Introduction to Node.js
      • How to use streams
      • The Node.js Event Loop
      • The Node.js Event Emitter
      • Differences between Node.js and the browser
      • Overview of Blocking vs Non-Blocking
      • Run Node.js scripts from the command line
      • How to read environment variables from Node.js
      • Writing files with Node.js
      • Reading files with Node.js
      • Discovering Node.js's test runner
      • Backpressuring in streams
      • Node.js with WebAssembly
      • Understanding setImmediate()
      • Understanding process.nextTick()
      • Working with file descriptors in Node.js
      • How to work with different Filesystems
      • ABI Stability
  • Other
    • JS
      • Asynchronous Flow Control
      • Discover JavaScript Timers
      • JavaScript Asynchronous Programing and Callbacks
    • Ecosystem
      • The V8 JavaScript Engine
      • Introduction to TypeScript
      • How to publish a Node-API package
      • Publishing a package
      • Security Best Practices
      • ECMAScript 2015 (ES6) and beyond
    • General
      • Anatomny of an HTTP Transaction
      • How much JavaScript do you need to know to use Node.js

Group C

  • HTTP
    • Anatomy of an HTTP Transaction
  • Debugging
    • User Journey[^1]
    • Debugging Node.js
    • Profiling Node.js Applications
    • Live Debugging
    • Poor Performance
    • Flame Graphs
    • Memory
  • Testing
    • Using Node.js's test runner
    • Mocking in tests
    • Discovering Node.js's test runner
  • FS
    • Writing files with Node.js
    • Reading files with Node.js
    • How to work with different Filesystems
    • Working with file descriptors in Node.js
  • Async
    • Asynchronous Control Flow
    • The Node.js Event Emitter
    • The Node.js Event Loop
    • JavaScript Anchronous Programming Calbacks
    • Don't Block the Event Loop
    • Discover JavaScript Timers
    • How to use streams
    • Overview of Blocking vs Non-Blocking
    • Backpressuring in Streams
    • Understanding process.nextTick()
    • Understanding setImmediate()
  • Package Management
    • Publishing a package
    • An introduction to the npm package manager
  • TypeScript
    • Introduction to TypeScript
    • ~~Running TypeScript with a runner~~[^2]
    • Running TypeScript Natively
    • Running TypeScript code using transpilation
  • Intro to Node.js
    • Introduction to Node.js
    • How much JavaScript do you need to know to use Node.js
    • The V8 JavaScript Engine
    • Differences between Node.js and the Browser
    • ECMAScript 2015 (ES6) and beyond
    • How to use the Node.js REPL
  • Security
    • Security Best Practices
  • Command Line and Environment
    • Run Node.js scripts from the command line
    • Output to the command line using Node.js
    • Accept input from the command line Node.js
    • How to read environment variables from Node.js

[^1]: This article should be renamed to give a better description of it's contents. Participants were given a card labeled "User Journey in Diagnostics". [^2]: This group elected for this article to be removed.

avivkeller avatar Oct 17 '25 14:10 avivkeller

Just one question do you talked about userland migrations article ?

AugustinMauroy avatar Oct 18 '25 14:10 AugustinMauroy

Just one question do you talked about userland migrations article ?

Not every article was used in this card sort. A list of the 50-ish articles used is available at https://tinyurl.com/node-card-sort.

avivkeller avatar Oct 18 '25 14:10 avivkeller

Okay make sense! Thanks for the answer

AugustinMauroy avatar Oct 18 '25 14:10 AugustinMauroy