70% of new NPM packages in last 6 months were spam
NPM Dependency Spoofing & Tooling Issues
- The npm website treats any
dependencieskey whose name matches a package as if it depended on that package, even when the value is a URL or GitHub shorthand pointing elsewhere. - This makes the UI show and link to the “wrong” package, hiding that the actual dependency is a different tarball/repo. Several commenters see this as a serious security bug, not just confusing UX.
package.jsonallows URLs, git, and GitHub shortcuts as versions, so spoofing is standards-compliant but misleading.package-lock.jsoncan also be manipulated; npm relies on the lockfile and doesn’t enforce strict consistency withpackage.json.npm ciimproves lockfile integrity but still doesn’t verify on-disknode_modules. Some want a “verify installed tree” command, similar to other ecosystems.
Tea Protocol Incentives and Spam Explosion
- Tea’s crypto-based reward model pays out based on package metrics, incentivizing mass publication of nonsense packages and circular dependences/stars.
- Many call its tokenomics a textbook cobra effect / Goodhart’s law: once a metric is tied to money, it’s gamed and stops measuring quality.
- Some argue Tea is not genuinely “remediating” the problem and label it as a grift.
What To Do About Spam and Unpublishing
- Proposals: bulk-remove or ban packages with
tea.yaml, or ban Tea-related spam accounts. - Pushback: mass unpublishing would violate npm’s own unpublish principles and undermine expectations of immutability and stability.
- Others counter that terms already allow removing abusive or squatting content and that rigid adherence to principles can harm ecosystem health.
- Debate over whether leaving spam accounts visible helps correlation or just pollutes search; “broken windows theory” is invoked.
Ecosystem Culture and Comparisons
- Many see npm/JS as uniquely prone to millions of tiny, low-quality packages and dependency bloat; some blame language culture, junior-heavy community, and small standard library.
- Others argue every popular ecosystem (Python, Rust, etc.) has supply-chain issues; JS is just larger and more visible.
- Go is cited as a contrasting culture where importing third-party code (beyond stdlib) is relatively rare.
Security, Supply Chain, and Trust
- People are uneasy about pipelines pulling hundreds of transitive packages with limited review.
- Some note prior measures: provenance verification for packages built via specific CI, and mandatory 2FA for “high impact” packages.
- There is interest in a separate, curated “secure registry” with audits for long-term, enterprise use.
AI Training and Data Pollution
- Concern: spam packages pollute training data for code models, reinforcing “garbage in, garbage out.”
- Counterpoint: modern systems already rely heavily on filtering and spam detection; high-quality curation at npm scale is still very hard.
- Disagreement over how much poisoned code data would actually increase LLM “hallucinations,” and how feasible large-scale dataset filtering really is.