WhoBuilt

NPM Kiosk and Open Source Monetization

Feb 21, 2023· 23 min· 337 views·Watch on YouTube

Speakers

Johnny, who built npm Kiosk at Adremotion, explains how it can make selling private npm packages easier, with Callstack host and Miho Peshawa discussing their own experience with private registries.

Why open source projects need a way to sustain themselves

Johnny says open source projects need a plan for survival because unpaid work and issue support do not scale indefinitely. At Adremotion, he wanted to test selling desirable React components while keeping essential parts available.

Private registries create friction for users

Miho describes using a private registry to let testers try Reassure before it became open source. Setting up access through Bytesafe involved team assignments and manual steps for roughly 50 sign-ups. The friction discouraged early adopters, so the team dropped the approach.

How npm Kiosk delivers a package

Johnny’s idea is to serve a private npm tarball through a link to a serverless function. The function can check a receipt, authenticate a user, or apply rate limits before allowing a download. For payments, he uses a Stripe Payment Link and its receipt ID as the download secret, avoiding a separate database.

Security and product fit involve trade-offs

Johnny says Kiosk was not yet in production for his own packages, though he sold five copies of Kiosk itself for $200. A download secret can leak if committed in a public repository, and revocation is possible but does not make the system perfectly secure. Buyers also asked for features such as subscriptions, Python support, Bitcoin, Gumroad, and free trials, showing that one setup does not fit every use case.

Takeaways

  • Reduce setup steps when inviting beta users, since registry configuration can keep interested testers from trying a package.
  • A serverless download gate can check payment or access conditions before serving a private package tarball.
  • Stripe Payment Links can provide a simple payment flow and receipt identifier without building a payment system or database.
  • Decide how much piracy risk is acceptable by weighing it against the friction added by stronger access controls.
  • Validate buyers’ needs early: requests for subscriptions, other languages, and payment providers can reveal gaps in product fit.

Mentioned in this talk

Search inside this talk

What was claimed 10

Show all 10 facts

Related talks