DEV Community

loading...
Cover image for A new way to support open source

A new way to support open source

Joel Wasserman
creator of flossbank.com, cog at google
・2 min read

Open source is an amazing concept. Brilliant developers write code to do all sorts of interesting and useful things, and then anyone can use that code and write even more code on top of it themselves. That is very, very cool. As a frequent user of open source, I benefit from this combination of generosity and brainpower. And as a result, I think a lot about ways to give back. I'm not the only one - GitHub sponsors, Open Collective, and Patreon all address this desire in one way or another. But given the nature of open source, where code is written on top of code, these 1:1 ways of giving back just feel a little incomplete. When I give back to a maintainer of a package I'm using, I'm really only giving back to the person who put the last block on top of the tower. Their package was built on other packages which was built on other packages - so why isn't there a way to give back to all the builders? Well, now there is.

Some friends and I built Flossbank to address two concerns: First, we think it should be easy to give back to not just the maintainer of a package, but the full dependency tree of that package. Second, we think there should be a way to give back without having to open up your wallet. (If you have the disposable income to do so, great - but if you don't, we want to give you a way to give back too.)

Flossbank is a package manager wrapper. It takes a dependency tree snapshot when you install an open source package (like when running npm install). Then it distributes revenue to all the packages in the tree. What revenue? With Flossbank you can donate monthly or you can choose to see text-based ads while npm install is spinning away. Either way, all of those "dependencies of dependencies of dependencies" are getting their share.

If you're interested in learning more check us out at https://flossbank.com/how-it-works?rc=dto, or if you have general feedback don't hesitate to comment!

Discussion (0)