Summary by TwinMind ยท 15m 17s
Summary by TwinMind ยท 15m 17s

The creator of npm is making something new ๐Ÿ‘€

The creator of npm is making something new ๐Ÿ‘€

Theo - t3โ€คgg

Theo - t3โ€คgg

NPM's Current State and Limitations

  • NPM was major innovation for package management, massive improvement over pip/gems
  • Since Microsoft acquisition (GitHub โ†’ Microsoft), has sustained but lacks innovation
  • No meaningful new features in years despite close monitoring
  • Competition historically difficult due to:
    • NPM bundled with Node
    • Expensive hosting/distribution costs
    • No revenue model (users don't pay)

New Registry Competitors Overview

  • Two new registries emerging (not package managers, but registries)
  • Current package managers (bun, pnpm, yarn) still use NPM registry
  • JSR: Created by Deno team (Ryan Dahl - original Node creator)
  • Vault: Created by Isaac (original NPM creator)
  • Represents "Node vs NPM" battle at registry level

JSR (JavaScript Registry) Features

TypeScript-First Design

  • Built specifically for TypeScript and ESM
  • Publishing TypeScript packages with type definitions traditionally chaotic
  • Requires external engineer help for complex setups (example: upload thing project with Julius)
  • JSR handles:
    • API docs generation
    • DTS files generation
    • Code transpiling for cross-runtime compatibility
    • Web standard ECMAScript modules distribution

Documentation Generation

  • Automatic API docs from TypeScript source
  • Similar to TS.dev functionality for type definition visualization
  • Example: React Router DOM type definitions display
  • Generated from JSDoc comments and proper type definitions
  • Day-one feature vs external tools

NPM Compatibility

  • Superset of NPM, not replacement
  • Works with any JS package manager (yarn, pnpm)
  • Compatible with any runtime (Node, Deno, Bun, Cloudflare Workers)
  • JSR modules can import NPM dependencies

Slow Types Limitation

  • JSR analyzes TypeScript source for documentation/type generation
  • "Slow types" not supported in public API:
    • Types requiring extensive inference
    • Complex types that are computationally expensive
  • Consequences of slow types:
    • 2-5x slower type checking (potentially higher)
    • No type declarations for NPM compatibility
    • Missing/degraded documentation
    • Types replaced with 'any' in generated declarations

JSR Motivations and Benefits

Modern Web Standards

  • ECMAScript modules as standard (not CommonJS)
  • Multiple JS runtimes beyond Node/browsers
  • TypeScript as de facto standard
  • Addresses requirements that didn't exist when NPM created

Key Features

  • Native TypeScript support across runtimes
  • ESM-only approach (breaking from CommonJS)
  • Cross-runtime support focus
  • Interoperability with NPM-based projects
  • Enhanced developer experience:
    • Single command publishing
    • CI integration walkthrough
    • Zero-config GitHub Actions publishing
    • Automatic DTS files for Node/NPM
    • TypeScript best practices guidance
  • Fast, secure, reliable infrastructure
  • Resource-constrained environment optimization

Vault Technologies Overview

Team Composition

  • Isaac: Original NPM creator, former NPM CEO, GitHub principal engineer, Node project leader
  • Darcy Clark: Staff engineering manager (NPM, GitHub CLI teams), Themify co-founder
  • Roy Adoro: Node.js TSC member, Google staff software engineer, former NPM CLI team lead

Investment and Support

  • Led by Excel Ventures
  • Notable angel investors:
    • Guillermo Rauch (Vercel)
    • Evan You (Vue creator)
    • Pete Hunt (React contributor, Excalidraw)
    • David Kramer
    • Zach Jackson (Remix team)

Mission Statement

  • Focus on developer platforms and tooling
  • Address package ecosystem stagnation
  • Improve developer experience
  • Wealth of innovation opportunities identified

Security Concerns Highlighted

Manifest Confusion Attack Vector

  • NPM package manifest published separately from tarball
  • Manifests never fully validated against tarball contents
  • Assumption of consistency between manifest and tarball
  • Vulnerability to exploitation:
    • Tools using public registry susceptible
    • Bad actors can hide malware in dependencies
    • Transitive dependencies can introduce malware undetected
  • Supply chain attack risk through version bumping of dependencies

Comparison and Market Dynamics

JSR vs Vault Approaches

  • JSR: Transparent development, specific feature announcements, whitelist beta
  • Vault: Stealth mode, minimal public information, focus on team/funding announcements
  • Similar to early NPM/Node disagreements (Ryan Dahl's resistance to package.json, dependency locking)

Current Package Publishing Challenges

  • Publishing packages significantly harder than necessary
  • Need for quick code publishing and global distribution
  • Anticipation for ecosystem change after years of stagnation