Skip to content

chore(homepage): link to our blog, rather than HeroDevs #7883

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 2 commits into
base: main
Choose a base branch
from

Conversation

ovflowd
Copy link
Member

@ovflowd ovflowd commented Jun 22, 2025

This PR proposes a quick improvement to the current homepage button that directly links to HeroDev's website.

It’s based on a suggestion by @joyeecheung to provide a clearer, more official announcement link.

cc @nodejs/tsc

Relates to #7773

@Copilot Copilot AI review requested due to automatic review settings June 22, 2025 16:15
@ovflowd ovflowd requested a review from a team as a code owner June 22, 2025 16:15
Copy link

vercel bot commented Jun 22, 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 22, 2025 4:37pm

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

Updates the homepage’s secondary button to point to the official Node.js announcement for Node.js 18 EOL support instead of the external HeroDevs page.

  • Replaced HeroDevs support link with Node.js blog announcement URL
  • Button text and styling remain unchanged

Copy link

codecov bot commented Jun 22, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.47%. Comparing base (2fc6472) to head (4360625).
Report is 4 commits behind head on main.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7883      +/-   ##
==========================================
+ Coverage   75.45%   75.47%   +0.02%     
==========================================
  Files         101      101              
  Lines        8311     8311              
  Branches      218      218              
==========================================
+ Hits         6271     6273       +2     
+ Misses       2038     2036       -2     
  Partials        2        2              

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

@avivkeller avivkeller requested a review from a team June 22, 2025 16:20
@avivkeller
Copy link
Member

I pre-emptively approve a future fast-track request under the condition that this receives TSC approval.

@avivkeller avivkeller changed the title chore; moves the link from herodevs to our ESP blog post chore(homepage): link to our blog, rather than HeroDevs Jun 22, 2025
Copy link
Member

@jasnell jasnell left a comment

Choose a reason for hiding this comment

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

Dropping the red X on this to make sure it doesn't land without the TSC having the opportunity to discuss further. The change itself lgtm but we need to be clear on the intent and goal here. Linking to something other than directly to the Herodevs site might be contrary to the entire point.

@anonrig
Copy link
Member

anonrig commented Jun 22, 2025

Cc @nodejs/tsc please review

@ovflowd
Copy link
Member Author

ovflowd commented Jun 22, 2025

Dropping the red X on this to make sure it doesn't land without the TSC having the opportunity to discuss further. The change itself lgtm but we need to be clear on the intent and goal here. Linking to something other than directly to the Herodevs site might be contrary to the entire point.

Thanks for calling that out. My goal here was to help reduce the heat and confusion we're currently getting from parts of the community regarding the presence of a direct link to a 3rd-party site.

This change is meant as a temporary measure — or potentially a longer-term solution, if it ends up being seen as a better compromise. I agree that we should align on the broader goals here, but I believe this could help ease some of the current friction in the meantime.

Co-authored-by: Aviv Keller <[email protected]>
Signed-off-by: Claudio W. <[email protected]>
Copy link
Member

@AugustinMauroy AugustinMauroy left a comment

Choose a reason for hiding this comment

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

Love it !

@avivkeller
Copy link
Member

avivkeller commented Jun 22, 2025

@jasnell you blocked, but you also 👍 the rationale @ovflowd explained, so do you rescind your block? (just want to clarify)

@jasnell
Copy link
Member

jasnell commented Jun 22, 2025

No, I explained why I blocked and that still stands. I want to make sure there's plenty of time for the TSC and Foundation to discuss.

Copy link
Member

@joyeecheung joyeecheung left a comment

Choose a reason for hiding this comment

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

Other than this was what I would've felt more comfortable with in the first place, I think in terms of protecting the image of the project this is a strict improvement (I am already seeing criticism about the current direct link on social media, both towards the project and towards the sponsor. Directing to an official blog post at least does enough as damage control).

@jasnell
Copy link
Member

jasnell commented Jun 22, 2025

Would you be willing to link to any criticisms you've seen? Given that one of the purposes of the link was to determine how effective such a link would be, such concrete feedback would be helpful.

I've not seen any public criticism in social channels yet.

@joyeecheung
Copy link
Member

I don't feel like adding a GitHub <-> social media feedback loop since that seems somewhat toxic, I will post it to the nodejs-social slack channel.

@MattIPv4
Copy link
Member

MattIPv4 commented Jun 22, 2025

👀 If/when this is given TSC approval, we should also make sure we have explicit approval from the Foundation for this change, as I understand it was a request from them to have this be a direct link rather than to our blog post.

(I am very much +1 to this change, I think a first-party link that educates on EOL status, updating, etc. and gives context before sending users to the ESP is much more valuable to the community than a direct link to the ESP with very little context, but want to make sure we're fully aligned on this change and aren't falling foul of any requirements from the Foundation.)

@ljharb
Copy link
Member

ljharb commented Jun 23, 2025

Personally I think having a distinct page on nodejs.org that describes the ESP specifically, and then in turn links to partners (HeroDevs at the moment, but obviously any additional partners in the future), would be a perfectly fine choice here - but a blog post where commercial support is mentioned in the 16th-18th paragraphs doesn't seem like it will move the needle for getting funding for the project, nor satisfy the ESP contract terms.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 23, 2025

doesn't seem like it will move the needle for getting funding for the project, nor satisfy the ESP contract terms.

Are we on a program different from what Vue.js is doing? Can that page be tweaked to be similar to https://v2.vuejs.org/eol/ and to be enough?

I wonder where can we find the ESP contract, is that public, or at least the terms about promotional content? I did see some numbers that the project is getting but it was communicated in a private meeting, which was somewhat confusing to me - at the end of the day the project is a community-driven one and the foundation is a 501c3 (EDIT: apparently it's now 501c6), the TSC isn't in any contractual relationship and is just a subset of collaborators that also act as custodians of the project. I am not sure why the TSC needed to see the numbers in private since it's not the TSC getting paid. And only showing it briefly at a meeting makes it difficult to look up later. It was also communicated to the TSC that the button is vital for the CI infrastructure staff hours that the OpenJSF hires from LF and the project relies on and at least for me that was why I didn't want to die on the hill on this.

I feel that the amount of information being kept in private is more than necessary or counterproductive to make the program successful. If our collective goal is to keep enough traffic to the sponsor so that we have enough income for the CI infra to stay afloat, why not just disclose the traffic and the income, and we collectively work towards that goal in public? I think that might even be some positive publicity from this for the sponsor, instead of leaving people guessing what this whole program is about and assuming bad faith on social media.

@ovflowd
Copy link
Member Author

ovflowd commented Jun 23, 2025

Are we on a program different from what Vue.js is doing? Can that page be tweaked to be similar to https://v2.vuejs.org/eol/ and to be enough?

My exact thoughts. I could also set a permanent URL for /eol (FYI); But I'm also curious on why Vue can have a blog post and us not? To be clear, I'm fine having a dedicated "page" which honestly speaking can just be a blog post. I also thought that @rginn did write the blog post (and Matteo posted on her behalf); I'm also 👍 if we want to rephrase or update the blog post to better align with any contractaul terms.

@ovflowd
Copy link
Member Author

ovflowd commented Jun 23, 2025

@jasnell apologies for me bothering you again, due to #7773 (comment) the button itself lost its value. I do believe we should merge this, otherwise the button is just simply not there for anyone using EasyList, which is incorporated on pretty much every AdBlocker be it browser-level or DNS level.

@ljharb
Copy link
Member

ljharb commented Jun 23, 2025

I think you're vastly overestimating how many people use adblockers, especially in enterprise environments - I don't think its targeting by adblockers reduces its value at all, personally.

@avivkeller
Copy link
Member

avivkeller commented Jun 23, 2025

I think you're vastly overestimating how many people use adblockers, especially in enterprise environments - I don't think its targeting by adblockers reduces its value at all, personally.

  1. Are we? Ad blockers are extremely popular. Per multiple sources, roughly a third of internet users use an adblocker. (https://backlinko.com/ad-blockers-users)

  2. “But the enterprise users”, in my opinion, isn’t a valid argument because enterprise environments don’t operate in a vacuum. Many purchasing decisions are influenced by research done outside of locked-down work environment.

@ovflowd
Copy link
Member Author

ovflowd commented Jun 23, 2025

I think you're vastly overestimating how many people use adblockers, especially in enterprise environments – I don't think its targeting by adblockers reduces its value at all, personally.

As an enterprise user myself, I do use an adblocker. Do you have any data to support your claim? Specifically, can you provide statistics on what percentage of users accessing nodejs.org are doing so from enterprise or work environments?

With all due respect, if major privacy filter lists are blocking the button, that alone significantly undermines its visibility and, by extension, its effectiveness.

Copy link
Member

@bjohansebas bjohansebas left a comment

Choose a reason for hiding this comment

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

LGTM

@jasnell jasnell dismissed their stale review June 25, 2025 03:30

As mentioned, I was blocking only to ensure enough time was given to review before it was merged. I'm dismissing that block now. I disagree with this specific change in general but I am not blocking it.

@jasnell

This comment has been minimized.

@AugustinMauroy
Copy link
Member

I wonder where can we find the ESP contract, is that public, or at least the terms about promotional content?...

https://github.com/openjs-foundation/cross-project-council/blob/main/project-resources/ESP/ECOSYSTEM_SUSTAINABILITY_PROGRAM.md

@joyeecheung
Copy link
Member

joyeecheung commented Jun 25, 2025

I consider this entire comment and line of discussion to be quite inappropriate for this thread as no part of this commentary is about whether to change the target of the link or not (in my opinion). There are better, more appropriate places to raise those issues and this PR is not it. Obviously you're welcome to disagree, and I'm not asking you to change or remove the comments, but I find it extremely disruptive and counterproductive.

Can you elaborate on why this is considered inappropriate? We are discussing a PR that affects the implementation of the ESP, and someone raised that it may not satisfy ESP terms, so I was asking whether the terms are public, and if not why can't we be more transparent about it. I think this is similar to be asking in a PR that implements a spec, someone raised that it may not be spec compliant, so I was asking for a reference in the spec, and why can't we be more transparent about the spec and the motivation of the part being implemented.

And as @AugustinMauroy pointed, it seems the terms are public (unless, those are not terms), which explicitly listed the Vue.js page as a best practice. That seems to be a productive outcome from this discussion?

I think all of the website stylistic changes we've discussed about are to bring a balance between community acceptance and making the income/expense match. That's why I am raising the question about why we can't be more transparent about the income/expense match, so that we'll have a way to figure out whether this stylistic change is doing enough, or whether other stylistic changes would help making the numbers match, if so, how much. This is a response to "how much the needled is being moved" comment by @ljharb . It seems unnecessarily difficult to move the needle if the needle has to be covered and we have a long latency between team A doing something to move the needle, and a different team B is notified whether the needle is moved and in which direction, and team B need to reach consensus about what to tell team A next. Considering this PR is basically team A implementing another proposal that would affect the needle, isn't this the right place to ask about why we have such an inefficient process about the needle?

@ovflowd
Copy link
Member Author

ovflowd commented Jun 25, 2025

I wonder where can we find the ESP contract, is that public, or at least the terms about promotional content?...

https://github.com/openjs-foundation/cross-project-council/blob/main/project-resources/ESP/ECOSYSTEM_SUSTAINABILITY_PROGRAM.md

FYI that is not the contract, jsut the general ESP program guidelines/description/etc.

And as @AugustinMauroy pointed, it seems the terms are public (unless, those are not terms), which explicitly listed the Vue.js page as a best practice. That seems to be a productive outcome from this discussion?

These are not (necessarily) the terms of the contract with HeroDevs (double FYI) 😅

@jasnell

This comment has been minimized.

@aduh95 aduh95 added the github_actions:pull-request Trigger Pull Request Checks label Jun 25, 2025
@github-actions github-actions bot removed the github_actions:pull-request Trigger Pull Request Checks label Jun 25, 2025
Copy link
Contributor

github-actions bot commented Jun 25, 2025

Lighthouse Results

URL Performance Accessibility Best Practices SEO Report
/en 🟢 100 🟢 100 🟢 100 🟢 91 🔗
/en/about 🟢 100 🟢 96 🟢 100 🟠 82 🔗
/en/about/previous-releases 🟢 99 🟢 96 🟢 100 🟠 83 🔗
/en/download 🟢 98 🟢 100 🟢 96 🟢 91 🔗
/en/blog 🟢 100 🟢 100 🟢 96 🟢 92 🔗

Copy link
Member

@legendecas legendecas left a comment

Choose a reason for hiding this comment

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

The ESP is non-exclusive and open to other partners as well. So linking to a nodejs.org page rather than to a specific partner directly on the project homepage is strictly following the spirit of ESP.

@avivkeller
Copy link
Member

All checks are green, @nodejs/TSC please merge when ready :-)

@ruyadorno
Copy link
Member

The ESP is non-exclusive and open to other partners as well. So linking to a nodejs.org page rather than to a specific partner directly on the project homepage is strictly following the spirit of ESP.

Agreed, that said, I would prefer to see the dedicated ESP solution that has been proposed and I believe this change should be temporary while we work on that.

IMO the ESP page is going to be a much better look on how the program is structured and in turn improve conversion which is the outcome desired for both the partner and the project.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 25, 2025

In this PR, no. As I don't feel it's an appropriate discussion for this PR.

Okay, to leave a record for transparency, let us discuss this among the TSC, I'll cc the moderation team.

@ljharb
Copy link
Member

ljharb commented Jun 25, 2025

fwiw the inefficiency on the feedback loop is not something that's fully solveable imo; sales cycles take a long time. Whatever node wants to attempt, it's likely going to have to sit there for 3-6 months before we can know what needs to be tweaked.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 25, 2025

Whatever node wants to attempt, it's likely going to have to sit there for 3-6 months before we can know what needs to be tweaked.

I think having a 3-6 months delay is still better than keeping it completely opaque, IIUC there was already past data from when there was a link in the footer. Also so far it seems there are multiple messengers in the feedback loop each adding a layer of error to the feedback eventually reaching the team.

We need to double check but from the TSC meeting today it seems the exact style of the current button is not a contractual requirement, but more of something that some people on the project/foundation's side believe would be helpful in driving the traffic, and we were given this document which explicitly listed the Vue.js example as reference. What I am getting is that there are multiple ways to do this:

  1. The bare minimum that the project needs to do to keep the program alive
  2. What the project can do to maximize the profit without damaging itself and the program using inappropriate presentations
  3. What would be the kind of presentation that project can do to increase the profit at the unnecessary reputation expense of itself and the program, which also decreases the profit in the long term.

I think everyone wants 2 but the communication error introduced by the layers so far made us think 3 is 2 and then 2 is 1. Having a better communication channel and tighter feedback loop would make sure that we stay close to 2.

@ljharb
Copy link
Member

ljharb commented Jun 25, 2025

That's a good analysis - I think part of the problem, though, is that there are many different ideas of what "reputation expense" constitutes.

@mhdawson
Copy link
Member

Based on TSC discussion today this should not land until Monday June 30th as the TSC confirms that there is consensus that landing this is the appropriate next step. I won't be around Monday June 30th so please dismiss my block after having confirmed with a TSC member that consensus was reached.

Copy link
Member

@mhdawson mhdawson left a comment

Choose a reason for hiding this comment

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

blocking until we confirm we have TSC consensus on making the change.

@aduh95
Copy link
Contributor

aduh95 commented Jun 26, 2025

I think part of the problem, though, is that there are many different ideas of what "reputation expense" constitutes.

I don't think it's a problem per say, all of Node.js is built using consensus seeking among people that have different ideas about virtually everything. This topic seems certainly to be more "touchy" than the average, but we've seen worse 😅

@mhdawson
Copy link
Member

Adding a bit more info. This is the plan we are confirming that we have TSC consensus for:

  1. Leave the existing button that links directly to the HeroDev's site for 1 week so that we can gather data with respect to how well it is works
  2. On Monday merge this pull request(chore(homepage): link to our blog, rather than HeroDevs #7883) which changes the button so that it points to the Node.js 18x EOL blog post that Matteo had published earlier. This includes links to HeroDev's site
  3. Work on implementing a page that follows the Vue approproach incorporating feedback from the HeroDevs and Foundation teams. When ready update the button on the website to point to that page
  4. Draft and publish some content on the Node.js social channels to explain the ESP program and the motivation for including the button.

@joyeecheung
Copy link
Member

joyeecheung commented Jun 27, 2025

Draft and publish some content on the Node.js social channels to explain the ESP program and the motivation for including the button.

It seems someone went ahead before consensus was reached https://x.com/nodejs/status/1938326519434363133 (without consulting the TSC as far as I know)

I think the thread being reposted is a good basis for the content, though in principal it would've been better to make sure we are on board with the communication that represents the project before we post that as a communication that represents the project - ideally before even the button was landed, now that the button is landed, reposting an individual TSC member's response from their personal account as a remedy still seems better than being completely quiet, just that some review process seems missing - a fast tracked review process is still better than no review process at all and letting one individual's opinion represent the project without consulting others IMO.

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.