I'm facing a dilemma. As a independent software developer and vendor, I code and sell the product of my work making some profit out of it. It's not much, it won't make me rich, but it's enough to make my living and there's room for giving back a bit of that amount to the FLOSS projects I use everyday to make the product a reality.
I use two primary sources for packages and modules: npm and composer (packagist). Whenever I run their update commands, I read on terminal:
$ npm update #...suppressed 98 packages are looking for funding run `npm fund` for details $ composer update #...suppressed 126 packages you are using are looking for funding. It would be fairly easy go through the path bellow:
- Set a sum of money available, e.g. US$ 1,000.00;
- Sum all those
looking for fundingpackages; - To divide the money by the sum of projects: 1000/(98+126)=4.464285714285714;
- Go to every URL from
npm fundandcomposer fundand donate US$ 4.46 to each.
But I feel this is not a fair distribution for various reasons, some being:
- Some projects plays more crucial roles to my project than others;
- I don't feel right that well funded projects like, let's say, Bootstrap, Guzzle and Symfony takes the money that will serve better to less funded projects (I'm not telling these projects don't deserve any money! They do! I just want to give money to less funded projects.);
- The value of each donation is just too low.
What my heart says ATM can be summarized as:
- Set a blacklist containing the 'well funded' projects;
- Get the most used classes and methods from the packages within the project (excluding the ones from the blacklist);
- Set a kind of 'grade weight' for each project based on their usage;
- Provide a list with, let's say, the top 10 most relevant packages based on their usage within the project;
- Using the 'grade weight', divide the available budget for each package.
I've been researching for quite some time how to give back to the community when a project uses FLOSS packages. Most of the content I read focus on contributing with code and documentation (which I already do), but none that I could find talks about sharing money in a 'fair' manner.
So, I kindly ask from this community:
- Is my idea of 'fair' really fair?
- What would be a fair method to share money with FLOSS projects?
- How can I implement the method proposed above? Code examples are welcome!