Image via William Hilton

After last week a popular JavaScript library started showing full-blown ads in the npm command-line interface, npm, Inc., the company that runs the npm tool and website, has taken a stance and plans to ban such behavior in the future.

"We are always working on improving our policies and expand on our commitments to the community," Ahmad Nassri, npm, Inc. CTO told ZDNet in an email this week.

"To that end, we're making updates to our policies to be more explicit about the type of commercial content we do deem not acceptable."

According to these upcoming updates, npm will ban:

Packages that display ads at runtime, on installation, or at other stages of the software development lifecycle, such as via npm scripts.

Packages with code that can be used to display ads are fine. Packages that themselves display ads are not.

Packages that themselves function primarily as ads, with only placeholder or negligible code, data, and other technical content.

The "Standard" scandal

Npm took a stance after last week, Standard, a popular JavaScript library, started showing ads in the npm terminal after being installed.

The ads were being shown via another npm package called Funding that was included in Standard's codebase. Both Standard and Funding were developed by Feross Aboukhadijeh, a JavaScript developer seeking a way to alleviate costs for running the Standard project, a JavaScript style guide, linter, and automatic code fixer.

Aboukhadijeh hoped other JavaScript projects would also integrate Funding int their codebase, as a way to support the development costs of their open-source work.

However, the JavaScript community didn't react in the way Aboukhadijeh hoped, and his initiative was criticized by most developers, who claimed the ads were polluting application logs.

One developer went as far as creating the first-ever terminal ad blocker.

Linode and LogRocket, the two companies who signed up to show ads via Funding in developers' npm terminals, also backed out in the face of negative comments from web developers -- their primary customers.

Development on "Funding" project ceases

Yesterday, shortly after Nassri reached out to ZDNet to inform us of the upcoming npm policy change, Aboukhadijeh also announced he was stopping development on the Funding library, effectively killing the project.

In a blog post explaining the full Funding backstory and the motives behind the project, Aboukhadijeh cited ongoing work from the npm team to standardize CLI post-install scripts -- the mechanism used by Funding to show ads.

The upcoming change will allow developers to silence any type of non-error terminal messages, such as ads, or calls for donations -- an issue many times more widespread[1, 2, 3, 4, 5, 6] than Funding's ads ever were.

"The days of free-form post-install solicitations seem numbered," Aboukhadijeh said. "So while terminal ads may work for a little while longer, there are clearly better paths forward."