In 2016, the Ford Foundation published a report on the lack of financial support for public source code and there’s still a massive funding gap, but a new scheme may sort that out.
The report [PDF], titled, “Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure,” begins, “Our modern society – everything from hospitals to stock markets to newspapers to social media – runs on software. But take a closer look, and you’ll find that the tools we use to build software are buckling under demand.”
Seven years on, funding free and open-source software is still an issue, despite projects like The Linux Foundation’s Core Infrastructure Initiative and Mozilla’s Open Source Support awards program. Though various funding platforms have emerged, like Open Collective and GitHub Sponsors, financial support for open source maintainers continues to be uneven.
Some well-known developers have been able to quit jobs at prominent companies to work full time on open source projects, buoyed by corporate sponsors. Others, like Denis Pushkarev, maintainer of the core-js library, and Christofer Dutz, creator of Apache PLC4X, have found it more difficult to monetize their code creation and maintenance.
When developer André Staltz looked at funding data from Open Collective and GitHub in 2019, more than half of projects didn’t generate enough revenue to support their maintainers above the poverty line.
Helping out in increments
Armin Nezhat, co-founder and head of growth at thanks.dev, believes the distribution of funds can be made more even by letting donations flow down the dependency tree.
“Startup companies depend more and more on open source,” said Nezhat in an interview with The Register. “And when you look at the MIT license, software is free as is but the maintenance and the maintenance time is not.”
Nezhat described the burden faced by developer John Reilly, who maintains TypeScript loader for webpack (ts-loader), in terms of responding to support requests from major companies that use ts-loader.
Reilly, he said, “is getting 16 support requests from Microsoft, four from ByteDance, three from Mozilla, three from Atlassian, and the list goes on. Like every single one of these maintainers is getting slammed by these big enterprises, which have hundreds of engineers.”
Money is coming into the open source ecosystem to encourage maintainers to continue to develop and support their software but it doesn’t reach everyone. That’s at least partly a consequence of the complexity of open source projects, which may have dozens or even hundreds of dependencies – packages of code that perform specific functions. Just one npm package has on average 79 dependencies, and web apps often integrate many such packages.
Few people, if any, have the inclination to make donations to the maintainers of every single software package they rely on. It’s just too much effort to do manually.
The idea behind thanks.dev is to take donations via GitHub or GitLab accounts and spread them across the dependency tree three levels deep, at up to eight decimal places on the dollar. Funds can be skewed toward, or away from, specific projects or ecosystems, but the system is mainly automated.
Thanks.dev presently supports itself through a voluntary tip percentage that, if more than zero, gets deducted from donation amounts along with a Stripe payment processing fee prior to distribution.
This is not the first time this has been tried: Open Collective proposed something similar in 2018, a project called BackYourStack. But judging by discussions among those who backed the initiative, it never took off for a variety of reasons.
So far, Cash App, Sentry, and Sourcegraph have signed on, and their dependency trees now flower with modest donations. Sentry’s contributions include $7.17 for github.com/actix, $8.82 for github.com/axios, $5.43 for github.com/blakeembrey, $28.74 for github.com/brianc, and so on. That doesn’t end open source funding concerns but if enough open source users warm to the idea, it may help spread the wealth a bit.
“What we’re trying to do is create awareness in companies and in organizations that this is your dependency tree, and these are the people that you depend on,” said Nezhat. ®