Nodejs.dev: Content structure

Created on 1 Feb 2018  Β·  16Comments  Β·  Source: nodejs/nodejs.dev

Current website structure

β”œβ”€β”€ index
β”œβ”€β”€ about
β”‚Β Β  > short and very technical explanation (blocking vs. nonblocking, event model, threads)
β”‚Β Β  β”œβ”€β”€ community
β”‚Β Β  β”‚Β Β  > explanation about CommComm, contributors/collaborators, membership, consensus seeking process
β”‚Β Β  β”œβ”€β”€ governance
β”‚Β Β  β”‚Β Β  > TSC, collaborators, TSC membership/meetings, consensus seeking process
β”‚Β Β  β”œβ”€β”€ privacy
β”‚Β Β  β”‚Β Β  > Privacy Policy (doesn't really belong here)
β”‚Β Β  β”œβ”€β”€ releases
β”‚Β Β  β”‚Β Β  > Explanation of patch/minor/major versions
β”‚Β Β  β”œβ”€β”€ resources
β”‚Β Β  β”‚Β Β  > The Node.js logo to download (@bnb)
β”‚Β Β  β”œβ”€β”€ trademark
β”‚Β Β  β”‚Β Β  > Trademark Policy (doesn't really belong here)
β”‚Β Β  └── working-groups
β”‚Β Β      > List of working groups
β”œβ”€β”€ blog
β”‚Β Β  > Number of articles per category (including post from the old Node.js website)
β”‚Β Β  β”œβ”€β”€ advisory-board (2)
β”‚Β Β  β”œβ”€β”€ announcements (19)
β”‚Β Β  β”œβ”€β”€ community (11)
β”‚Β Β  β”œβ”€β”€ feature (1)
β”‚Β Β  β”œβ”€β”€ module (2)
β”‚Β Β  β”œβ”€β”€ nodejs-road-ahead
β”‚Β Β  β”œβ”€β”€ npm (7)
β”‚Β Β  β”œβ”€β”€ release (314)
β”‚Β Β  β”œβ”€β”€ uncategorized (20)
β”‚Β Β  β”œβ”€β”€ video (3)
β”‚Β Β  β”œβ”€β”€ vulnerability (23)
β”‚Β Β  β”œβ”€β”€ weekly-updates (72)
β”‚Β Β  └── wg (1)
β”œβ”€β”€ docs
β”‚Β Β  > Links to various versions of the API docs 
β”‚Β Β  β”œβ”€β”€ es6
β”‚Β Β  β”‚Β Β  > ES6 and beyond (probably not really relevant any longer)
β”‚Β Β  β”œβ”€β”€ guides
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ anatomy-of-an-http-transaction
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ backpressuring-in-streams
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ blocking-vs-non-blocking
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ debugging-getting-started
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ domain-postmortem
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dont-block-the-event-loop
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ event-loop-timers-and-nexttick
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ getting-started-guide
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ nodejs-docker-webapp
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ publishing-napi-modules
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ simple-profiling
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ timers-in-node
β”‚Β Β  β”‚Β Β  └── working-with-different-filesystems
β”‚Β Β  β”œβ”€β”€ inspector
β”‚Β Β  β”‚Β Β  > Debugging Node.js Apps (= Inspector Tools & Clients)
β”‚Β Β  └── meta
β”‚Β Β      > NOT LINKED ON THE WEBSITE! (@fhemberger: Never noticed this document)
β”‚Β Β      └── topics
β”‚Β Β          └── dependencies
β”‚Β Β              > Explanation of bundled dependencies (V8, libuv, npm, etc.)
β”œβ”€β”€ download
β”‚Β Β  > LTS download page
β”‚Β Β  β”œβ”€β”€ current
β”‚Β Β  β”‚Β Β  > "Current" download page
β”‚Β Β  β”œβ”€β”€ package-manager
β”‚Β Β  β”‚Β Β  > Installing via package manager
β”‚Β Β  └── releases
β”‚Β Β      > Release list
β”œβ”€β”€ get-involved
β”‚Β Β  > Links to discussion, learning, international community sites (all external)
β”‚Β Β  β”œβ”€β”€ code-and-learn
β”‚Β Β  β”‚Β Β  > Code + Learn events
β”‚Β Β  β”œβ”€β”€ collab-summit
β”‚Β Β  β”‚Β Β  > Collaborator's Summit (general description)
β”‚Β Β  β”œβ”€β”€ contribute
β”‚Β Β  β”‚Β Β  > Reporting an issue, code contributions, becoming a collaborator
β”‚Β Β  └── Code of Conduct (external link)
β”œβ”€β”€ knowledge
β”‚Β Β  > NOT YET LINKED ON THE WEBSITE! - https://github.com/nodejs/nodejs.org/pull/211
β”‚Β Β  β”œβ”€β”€ HTTP
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ clients
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-access-query-string-parameters
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── how-to-create-a-HTTP-request
β”‚Β Β  β”‚Β Β  └── servers
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-create-a-HTTP-server
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-create-a-HTTPS-server
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-handle-multipart-form-data
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-read-POST-data
β”‚Β Β  β”‚Β Β      └── how-to-serve-static-files
β”‚Β Β  β”œβ”€β”€ REPL
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-create-a-custom-repl
β”‚Β Β  β”‚Β Β  └── how-to-use-nodejs-repl
β”‚Β Β  β”œβ”€β”€ advanced
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ buffers
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── how-to-use-buffers
β”‚Β Β  β”‚Β Β  └── streams
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-use-fs-create-read-stream
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-use-fs-create-write-stream
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ how-to-use-stream-pipe
β”‚Β Β  β”‚Β Β      └── what-are-streams
β”‚Β Β  β”œβ”€β”€ child-processes
β”‚Β Β  β”‚Β Β  └── how-to-spawn-a-child-process
β”‚Β Β  β”œβ”€β”€ command-line
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-get-colors-on-the-command-line
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-parse-command-line-arguments
β”‚Β Β  β”‚Β Β  └── how-to-prompt-for-command-line-input
β”‚Β Β  β”œβ”€β”€ cryptography
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-use-crypto-module
β”‚Β Β  β”‚Β Β  └── how-to-use-the-tls-module
β”‚Β Β  β”œβ”€β”€ errors
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-are-the-error-conventions
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-is-the-error-object
β”‚Β Β  β”‚Β Β  └── what-is-try-catch
β”‚Β Β  β”œβ”€β”€ file-system
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-read-files-in-nodejs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-search-files-and-directories-in-nodejs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-store-local-config-data
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-use-the-path-module
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-write-files-in-nodejs
β”‚Β Β  β”‚Β Β  └── security
β”‚Β Β  β”‚Β Β      └── introduction
β”‚Β Β  β”œβ”€β”€ getting-started
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ control-flow
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-write-asynchronous-code
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-are-callbacks
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── what-are-event-emitters
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ globals-in-node-js
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-debug-nodejs-applications
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-use-util-inspect
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ npm
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-access-module-package-info
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-is-npm
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── what-is-the-file-package-json
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ the-console-module
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ the-process-module
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-is-node-core-verus-userland
β”‚Β Β  β”‚Β Β  └── what-is-require
β”‚Β Β  β”œβ”€β”€ intermediate
β”‚Β Β  β”‚Β Β  └── how-to-log
β”‚Β Β  β”œβ”€β”€ javascript-conventions
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ how-to-create-default-parameters-for-functions
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ using-ECMA5-in-nodejs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-are-the-built-in-timer-functions
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-are-truthy-and-falsy-values
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ what-is-json
β”‚Β Β  β”‚Β Β  └── what-is-the-arguments-object
β”‚Β Β  └── other-resources
β”‚Β Β      └── tutorials-and-how-tos
└── security
    > Report security issues
planning

Most helpful comment

@fhemberger, love the IA writeup and proposal! πŸ™‚

Would only suggest that we split up the Information section and replace it with Learn. I think that "Documentation" is distinct and separate from "Getting Started" and general education resources would be better discovered under a dedicated top level item. It leaves room for us to add other tutorials, and even some advanced topic deep dives – like some of what is under "knowledge" on the current website.

Resources under Information can have happy homes elsewhere. I would be surprised if the homepage couldn't house "What is Node.js?", and details under "What is the Node.js Foundation/TSC?" can easily find a place in Getting Involved under dedicated sub-pages. (Suggestion: maybe call this section Community instead? This way it becomes the people-focused section of the website and we don't shoehorn pages under a too-restrictive menu item. "Getting Involved" can easily be a sub-section here!)

I like your idea of putting the release notes blog under the releases section! That way we can keep the more inclusive term Releases as nav link, but mitigate @franciscop's very valid concern about confusion. (Would heavily encourage us to have a dedicated changelog stream page and provide the RSS feed as a supplement though). I like Releases as the nav item because we can include information about our release cycle. There will presumably be a bit 'ol "Download" button on the homepage – that CTA should do fine for the majority of people!

So, that would make the IA:


screen shot 2018-02-11 at 12 51 34 pm

Home

  • Download CTA
  • What is Node.js?
  • "Hello World" example (links off to "Getting Started" under "Learn"
  • Who uses Node.js? (aka: "Appeal to Authority Pitch". Link to Foundation Application Showcase?)
  • Other Marketing stuffs

Learn

  • Getting Started
  • Tutorials
  • Advanced Topic Deep-Dives (Select content from old "Knowledge Base"

Docs

  • API Docs. This is meaty enough to be its own section all by itself!

Releases

  • Download LTS
  • Download Current
  • Installation via package manager
  • Release Notes
  • Release Cycle Info: What is LTS? Release schedule? Major/minor/patch releases?
  • Links to Previous releases, nightly builds, etc.

Community

  • Governance, The Foundation, Committees, Working Groups etc.
  • Conferences Info
  • Where can I get help?
  • How can I contribute?
  • Getting involved
  • External projects from the Node.js community

That only leaves leaf pages like "Trademark Policy", "Privacy Policy", "Code of Conduct" and "Security Reporting" without a home. However, I think they can easily find a place in the footer. They're not quite important enough to be in the nav, but still deserve to be on every page! The footer is a perfect place for that type of content.

All 16 comments

Based on what we talked in the meeting, I'd suggest a (very basic) structure like this:

  • ReleasesΒΉ

    • Download LTS

    • Download Current

    • Clarification: What is LTS? Release schedule? Major/minor/patch releases?

    • Release NotesΒ²

    • Installation via package manager

    • Links to Previous releases, nightly builds, etc.

  • Information

    • What is Node.js?

    • What is the Node.js Foundation/TSC?

  • Documentation

    • Getting started

    • Knowledge Base/Guides/Debugging/etc.

    • API docs

  • Getting involved

    • Where can I get help?

    • How can I contribute?

    • Working Groups

    • External projects from the Node.js community

ΒΉ because it's not just "Downloads"
Β² "News" of that category are just the parsed change logs. Do we need those "blog posts" or would it be enough to create an RSS feed for the change logs so they can be consumed by other parties?

How about adding Summits, Conferences, Meetups category in the _Getting Involved_

@maddhruv We actively removed Meetups (Meetup.com has a horrible API) and Conferences in the past. We only advertise the official Node.js Interactive conference and Collaborator's Summit.

But we can add some other way of posting the Meetups/Conferences, like how _jsconf_ and other do

Happy to help with documentation on front end design if possible. @fhemberger Was there a next meeting discussed or scheduled?

@emilypmendez Yep, in two weeks at around the same time.

@oe thanks, so are we confirmed for Feb 15th 3pm EST?

While I agree that "Releases" is more accurate, I think users normally expect "Download" or "Install" for projects. They might even confuse "Releases" with "Changelog" when scanning the categories.

@fhemberger, love the IA writeup and proposal! πŸ™‚

Would only suggest that we split up the Information section and replace it with Learn. I think that "Documentation" is distinct and separate from "Getting Started" and general education resources would be better discovered under a dedicated top level item. It leaves room for us to add other tutorials, and even some advanced topic deep dives – like some of what is under "knowledge" on the current website.

Resources under Information can have happy homes elsewhere. I would be surprised if the homepage couldn't house "What is Node.js?", and details under "What is the Node.js Foundation/TSC?" can easily find a place in Getting Involved under dedicated sub-pages. (Suggestion: maybe call this section Community instead? This way it becomes the people-focused section of the website and we don't shoehorn pages under a too-restrictive menu item. "Getting Involved" can easily be a sub-section here!)

I like your idea of putting the release notes blog under the releases section! That way we can keep the more inclusive term Releases as nav link, but mitigate @franciscop's very valid concern about confusion. (Would heavily encourage us to have a dedicated changelog stream page and provide the RSS feed as a supplement though). I like Releases as the nav item because we can include information about our release cycle. There will presumably be a bit 'ol "Download" button on the homepage – that CTA should do fine for the majority of people!

So, that would make the IA:


screen shot 2018-02-11 at 12 51 34 pm

Home

  • Download CTA
  • What is Node.js?
  • "Hello World" example (links off to "Getting Started" under "Learn"
  • Who uses Node.js? (aka: "Appeal to Authority Pitch". Link to Foundation Application Showcase?)
  • Other Marketing stuffs

Learn

  • Getting Started
  • Tutorials
  • Advanced Topic Deep-Dives (Select content from old "Knowledge Base"

Docs

  • API Docs. This is meaty enough to be its own section all by itself!

Releases

  • Download LTS
  • Download Current
  • Installation via package manager
  • Release Notes
  • Release Cycle Info: What is LTS? Release schedule? Major/minor/patch releases?
  • Links to Previous releases, nightly builds, etc.

Community

  • Governance, The Foundation, Committees, Working Groups etc.
  • Conferences Info
  • Where can I get help?
  • How can I contribute?
  • Getting involved
  • External projects from the Node.js community

That only leaves leaf pages like "Trademark Policy", "Privacy Policy", "Code of Conduct" and "Security Reporting" without a home. However, I think they can easily find a place in the footer. They're not quite important enough to be in the nav, but still deserve to be on every page! The footer is a perfect place for that type of content.

@amiller-gh Awesome, this looks like a great structure to start with!

@oe What's the plan for our next meeting?

Linking this issue here regarding "Guides" and setting up a learning path: https://github.com/nodejs/help/issues/1122

@amiller-gh I'd also like to suggest that we have a Branding page in the Community section, in a similar vein to what Webpack does: https://webpack.js.org/branding/

Branding guide seems like high value for little effort. That is, of course, if everyone agrees on its content. :wink:

Also wanted to add another domains to the microsite list:

https://ci.nodejs.org/

There's also one further one for the Certification, though I don't know the stage it's at nor if I can share it for documentation purposes here _yet_.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lidoravitan picture lidoravitan  Β·  4Comments

giankotarola picture giankotarola  Β·  4Comments

SMotaal picture SMotaal  Β·  4Comments

talarviv picture talarviv  Β·  4Comments

mmarchini picture mmarchini  Β·  4Comments