Paying for Open Source

GitHub lunched a new feature yesterday, sponsorship for open source developers.

On its face this seems like a great idea, people who write open source software largely get nothing right now, so more than nothing must be better, right?

But as many folks are right to point out, this is not as simple as it seems. Open source maintainers are already subject to entitled users demanding attention to their pet feature, even if it’s not an explicitly supported use case.

Sponsorship brings a whole new level of “you owe me” to small software that is a dangerous trap to fall into, especially for newer developers. Even without money, writing software can be a trap:

If you’re a young developer writing software for the first time, maintaining and supporting that software feels like your only choice! I spent more time than I’m comfortable with supporting software that I no longer used or cared about because users of that software demanded it, and that’s not how you should treat something that you do for free.

The problem with adding money into the mix is that the guilt of open source is even stronger if you’re taking money from people, and it’s unlikely to make 90% of developers enough money to actually be meaningful.

But I guess the part that bothers me more is that it seems designed around individuals supporting open source developers that write software they use. In reality, most of the monetary value of using open source code is actually gained by startup software companies who make money on services built on top of this free software, not individual developers throwing together a hobby project.

This is a lot more explicit on services like Open Collective where there are already first class user types for companies rather than individuals, and companies that support open source software are promoted in a different way that helps make this practice more widely held and sustainable. Just check out the babel project where you can clearly see support from AirBNB, Adobe, Salesforce and others.

One interesting note that has been overlooked: GitHub’s support for a new FUNDING.yml file which defines a user on various open source funding services. In cocoapods-land, we have a plugin which collects all the licenses from the open source pods you’re using and compiles them automatically into an acknowledgements file for use in your app, so you can properly attribute the open source code you’re using. What if we did that, but for supporting open source code?

In fact, this is exactly the approach suggested by a compelling, if unfinished, project that @aboodman was working on a while back, called dot-donate. Making it easier to support developers would go a long way to making developing open source code a sustainable job, rather than a guilt-driven side project.

This is a treacherous first step for GitHub, I hope they can turn it into something that makes the practice of supporting open source code a startup-driven endeavor, rather than an individual one.