Monetizing JS Packages as Easy as `npm publish`

Spencer Jones
3 min readMay 12, 2020

Monetizing open source projects is hard.

Some have succeeded and created companies worth billions on top of OS—but that’s not the story for most of us.

It’s not easy or clearcut on how to even get started monetizing an open source project.

Here are some common models of monetizing:

  • Donations or ads (on, e.g., a documentation site)
  • Merchandise and conferences
  • Selling support, maintenance, or professional services
  • Dual Licensing (commonly licensed under GPLv3 or AGPL)
  • Creating premium/pro tiers
  • Creating a proprietary company offering

Apart from donations and ads—which haven’t really proven to be effective and scalable ways of monetizing for the vast majority of OS developers—each monetization model is labor/time intensive with lots of friction to get started.

Let’s dig into the other four models.

Support, Maintenance, and Professional Services

This model is the most straight-forward: it allows you to exchange your time for money.

If you have a sufficiently large open source project with large corporate adoption, then companies may be willing to pay in order to have more high-touch, reliable support than filing issues on Github.

The downside is that you’ll be spending time supporting companies rather than actually working on open source.

Dual Licensing

Dual licensing has supported lots of businesses and solo-developers, and on the surface, it’s a promising model.

If you are a single developer looking to start a business, making money with open source software, your best chance at being successful, is by offering the software under a dual license.

Bruno Lowagie, on Stack Overflow

Dual licensing means that the code is fully open source and freely available for use in non-commercial applications that are also open source. However, if you want to distribute it as part of a closed-source, commercial application, then you need to purchase the software under a commercial license.

As the distributor, you need to manage the following:

  • Manage purchaser’s licenses
  • Handle payments
  • Figure out some way to actually distribute the commercially-licensed code

There’s also a bit of an honor system—if someone unscrupulous wants to your your open version and ignore the license, there’s nothing stoping them from doing so—unless you have the legal means to pursue lawsuits.

Premium/Pro Tiers

Offer additional features beyond what’s available in the open source project behind a paywall. These could be advanced features or support specialized use-cases.

How is this different from Dual Licensing? In a Dual Licensing model, the commercial license does not include any additional features in the open source version.

As the developer of a Premium/Pro offering, it has some of same requirements as Dual Licensing:

  • Manage purchaser’s access to your paid tier
  • Handle payments
  • Figure out some way to actually distribute the Premium/Pro tier code

Proprietary Company Offering

You can create a proprietary offering around an open source project. For instance, you can offer a managed, hosted service for your open source project (think MongoDB Atlas for MongoDB, WPEngine for WordPress hosting, or Github for Git).

This model has supported huge companies, but it also has the highest level of effort. You need to be able to setup and run a business built on top of an open source project.

Photo by Clark Tibbs on Unsplash

Isn’t there an easier way? … Introducing PremiumJS 👋

PremiumJS removes all the friction from monetizing JavaScript packages (open or closed source) so you get to do more what you love—create amazing stuff with JavaScript—and make money doing it.

PremiumJS supports both the Dual Licensing and the Premium/Pro Tier models of monetization by handling the following for you:

  • Manage purchaser’s licenses/access
  • Payments
  • Distribute your code behind an authorized paywall

The best part? It doesn’t require adopting any new tools you aren’t already using as a JS developer.

Want to publish a package? npm publish will get the job done.

Want to download something you bought? npm install works too.

Check it out and sign-up for beta access here: https://premiumjs.com.

Interested in making this a reality? 👏 👏

Please leave two or ten claps so others will find out about it too!

--

--

Spencer Jones

Reading and writing about Software Development with Javascript.