Skip to content

Add blog post publishing guidelines #7860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

mcollina
Copy link
Member

After discussing with @rginn, I'm adding the updated guidelines for publishing blog posts on the Node.js website.

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@Copilot Copilot AI review requested due to automatic review settings June 12, 2025 14:01
@mcollina mcollina requested a review from a team as a code owner June 12, 2025 14:01
Copy link

vercel bot commented Jun 12, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
nodejs-org ✅ Ready (Inspect) Visit Preview Jun 12, 2025 2:01pm

@mcollina
Copy link
Member Author

cc @nodejs/tsc

Copy link

codecov bot commented Jun 12, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.44%. Comparing base (c375408) to head (b395a81).
Report is 8 commits behind head on main.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7860   +/-   ##
=======================================
  Coverage   75.44%   75.44%           
=======================================
  Files         101      101           
  Lines        8305     8305           
  Branches      218      218           
=======================================
  Hits         6266     6266           
  Misses       2037     2037           
  Partials        2        2           

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

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a new section to the governance document outlining the process and approvals required for publishing blog posts on the Node.js website.

  • Introduces a "Blog post publishing guidelines" section.
  • Specifies mandatory steps for scheduling and approvals.
  • Defines an exception for minor/patch release announcements.
Comments suppressed due to low confidence (2)

GOVERNANCE.md:94

  • [nitpick] Consider adding a comma after "blog posts" for clarity: "The following guidelines apply to all blog posts, except minor or patch release announcements:"
The following guidelines apply to all blog posts except minor or patch release announcements:

GOVERNANCE.md:96

  • [nitpick] List items should start with a capital letter—change "each" to "Each" to match sentence casing.
1. each blog post _must_ have a target publishing date and time. If scheduled publishing is not possible, _the author_ (if privileged enough) or another delegated member would be responsible for landing.

@AugustinMauroy
Copy link
Member

Why not putting tsc as code owner ?

@mcollina
Copy link
Member Author

Why not putting tsc as code owner ?

That's an implementation detail, which is governed by governance. This PR updates the governance.
Surely, lets' do that as well.

The following guidelines apply to all blog posts except minor or patch release announcements:

1. each blog post _must_ have a target publishing date and time. If scheduled publishing is not possible, _the author_ (if privileged enough) or another delegated member would be responsible for landing.
2. each blog post _must_ be approved by @nodejs/tsc members _and_ OpenJS Foundation marketing staff.
Copy link
Member

Choose a reason for hiding this comment

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

If we can pull together a nodejs/marketing team that has members from both the TSC and the foundation marketing staff, would it be enough here to say that the nodejs/marketing team must approve it... then that team can work out whatever process makes the most sense to it.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

@jasnell if both the TSC and OpenJS staff are members of the team, technically the TSC could approve this without asking them. This has a different meaning.

Copy link
Member

Choose a reason for hiding this comment

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

Fair. If the new @nodejs/marketing team, then, is made up of Foundation marketing staff, I agree that requiring an approval from at least one person in both the @nodejs/tsc and @nodejs/marketing teams is ideal.

@joyeecheung
Copy link
Member

I wonder if we should label the blog posts somehow differently between "official" content and community content, and give project contributors sufficient trust to manage the community content. Putting an approval chain on every blog post gives me the "you need to get approval from the management for everything you do" megacorp vibes and seems out of place for a community-driven OSS project.

@mcollina
Copy link
Member Author

What kind of community content are we publishing on this blog? The vast majority posts are releases, and the rest are various kind of official announcements that represents the project in one form or another.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 16, 2025

What kind of community content are we publishing on this blog?

For example https://nodejs.org/en/blog/announcements/making-nodejs-downloads-reliable

The vast majority posts are releases, and the rest are various kind of official announcements that represents the project in one form or another.

I think that's because we are mostly only doing the bare minimum for content curation, which is not to say this is the best content we could put out. Personally I want to see the Node.js blog to be more like https://v8.dev/ - I participated in the writing of some of the content there despite not being a V8 team member/Google employee and I appreciated that we only needed technical review from V8 team members that reviewed the same technical work the posts were talking about. I think that's the kind of community content we should try to nurture, even if they are dwindling now, and treating everything on the blog as if they can only be official announcements means that the content would be biased towards official announcements. That's why I suggest the approval process should be based on the category of the content, unless we want to fully abandon the official blog as a channel to put out technically insightful content.

@avivkeller
Copy link
Member

avivkeller commented Jun 20, 2025

I don't think we need these guidelines explicitly stated, they seem to be implied. I feel like if we set @nodejs/TSC @nodejs/marketing as the CODEOWNERS of non-release blogs, it implies all of this information.

If we do insist on the inclusion of these guidelines, maybe they can go in the new "Adding Pages" document

@jasnell
Copy link
Member

jasnell commented Jun 21, 2025

For example https://nodejs.org/en/blog/announcements/making-nodejs-downloads-reliable

I'm not sure how this counts as "community content". It was written by a member of the website team discussing the changes that were made to improve release downloads. That would put it in the project content category.

@joyeecheung
Copy link
Member

I'm not sure how this counts as "community content". It was written by a member of the website team discussing the changes that were made to improve release downloads. That would put it in the project content category.

I think we might just have different definition of the community - here I mean "people who are not employed by the foundation or chartered to take on responsibilities, free of charge". I think even in this case, we should grant people sufficient trust. For example, I would say a review from the TSC or the marketing team for this article doesn't look super helpful unless any of us was specifically involved in the work described. Even as a member of the TSC I would trust the website team on the reviews of content about the development of the website more than myself.

What I am seeing from the current guideline is a lack of trust. I think there is a better way to go about this that would be closer to how PRs work in the organization in general...

The following guidelines apply to all blog posts except minor or patch release announcements:

1. each blog post _must_ have a target publishing date and time. If scheduled publishing is not possible, _the author_ (if privileged enough) or another delegated member would be responsible for landing.
2. each blog post _must_ be approved by @nodejs/tsc members _and_ OpenJS Foundation marketing staff.
Copy link
Member

@joyeecheung joyeecheung Jun 23, 2025

Choose a reason for hiding this comment

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

Suggested change
2. each blog post _must_ be approved by @nodejs/tsc members _and_ OpenJS Foundation marketing staff.
2. the pull requests adding or changing blog posts should notify @nodejs/tsc and @nodejs/marketing for reviews. In addition, reviews can be requested from teams with corresponding expertise.
- Release announcements: `@nodejs/releasers`
- Website: `@nodejs/website`
- Security: `@nodejs/security`
If there are no change requests and at least two approvals from the reviewing teams, after 48 hours on business days, the blog post is considered approved. If there is only one approval, the blog post needs to wait for at least 7 days. If the blog post needs to be fast tracked, a comment should be posted to request fast track, at least two thumbs up from the reviewing teams to the fast track request are needed to approve the blog post.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 23, 2025

Explaining my suggestions somewhere else in case it gets folded:

  1. The marketing team has a bus factor of 2. AFAIK they are both based on U.S. west coast and seem to be in proximity to each other quite often. This is not a very optimal set up IMO.
  2. There is no fast track in case incorrect information is missed during reviews and gets published. And again it's not great if this is bottlenecked on two people based on the U.S. west coast.
  3. We should recognize neither the TSC nor the marketing team necessarily have the correct expertise to review all content. I think in that case we should trust the teams that have the correct expertise on this. That also altogether lower the bus factor even further.

If there is anything not compliant with the legal and branding requirements, 48 hours on business days + 7 days should be sufficient to catch problems, if that's already considered adequate for Node.js core reviews done by people who are not bound by employment to review PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants