We all love FOSS. Lately, many of us have expressed their disarray at hearing stories of maintainers quitting due to a variety of factors. One of these is financial.

While donating to your favorite app developer is something many of you already do, the process can be tedious. We’re running all sorts of software on our machines, and keeping an exhaustive list to divide donations to projects is somehow more effort than tinkering with arch btw™.

Furthermore, this tends to ignore library projects. Library maintainers have been all over FOSS-centered media rightly pointing out that their work is largely unnoticed and, you guessed it, undervalued.

What can we do about it? Under a recent Lemmy post, some have expressed support for the following idea:

Create a union of open source maintainers to collect donations and fairly redistribute them to members.

How would this work?

Client-side:

  1. You take some time to list the software you use and want to donate to
  2. You donate whatever amount you want for the whole

Server-side:

  1. Devs register their projects to the union while listing their dependencies
  2. A repartition table is defined by the relevant stakeholders. Models discussed below.
  3. When a user donates, the money is split according to the repartition table

How do we split the money? It could be:

  • Money is split by project. A portion of donations go to maintainers of libraries used by the project.
  • Money is split according to need. Some developers don’t need donations because they are on company payroll. Some projects are already well-funded. Some devs are struggling while maintaining widely used libraries (looking at you core-js). Devs log their working time and get paid per hour in proportion of all donations.
  • Any other scheme, as long as it is democratically decided by registered maintainers.

Think of it like a worldwide FOSS worker co-op. You “buy” software from the co-op and it decided what to do with the money.

We “only” need to get maintainers to know about the initiative, get on board and find a way to split the money fairly. I’m sure it will be easy to agree on a split, since any split of existing money will be more satisfactory than splitting non-existent money.

What are your thoughts on this? Would you as a maintainer register? Would you donate as a user? Would you join a collective effort to build this project? Let’s discuss this proposition together and find a way to solve that problem so that FOSS can keep thriving!

  • I’m sure it will be easy to agree on a split, since any split of existing money will be more satisfactory than splitting non-existent money.

    Isn’t “how do we fairly distribute wealth” one of the hardest problems we’re still trying to solve as a global society?

    A fund that gets distributed to open source volunteers (or contributors?) sounds good on paper (and I think it’s something we should strive for), but whoever is unlucky enough to actually try to formalise it is going to have to deal with a lot of shit and drama.

  • And you did it! I‘m insanely impressed at the depth and commitment shown in this post. Thank you so much for making this.

    I‘m ready to help. What do you need? Have a github repo to join? Hit me up if you like.

    • You are indeed a good motivator! The reason I did not want to make this post at first is that I need everything: people to brainstorm with, people that can carry the project, people with the skills to create a prototype, people who can convince FOSS projects to get on board, and people willing to encourage others to donate.

      Overall too much labor, skills and connection for one person. I believe we would need a team of 10-15 volunteers, some already involved in projects, to put something up

  •  makeasnek   ( @makeasnek@lemmy.ml ) 
    link
    fedilink
    English
    5
    edit-2
    4 months ago

    I would be interested in this as a user and as a dev for OSS projects. I currently donate to a few projects via OpenCollective, Github sponsors, etc. A few options:

    • Users vote on how the money is spent, perhaps in proportion to how much they have donated over time. I think this is the simplest model that prevents self-dealing and accurately transmits user interest. You could use a quadratic funding model to better represent user interest instead of just giving the most vote weight to the users with the most money. On the other hand, assigning vote weight based on donations over time incentivizes users to donate more and keep donating (stopping a recurring donation could result in loss of vote weight and help redistribute vote weight as users become less active). You could also do a hybrid model: 50% is assigned according to vote weight based on total donations, 50% is assigned based on quadratic funding.
    • Developers vote on how the money is spent. I don’t know how to allocate vote weight here. Devs should also submit a list of downstream libraries which would receive donations. (or is it upstream?).
    • User and developers both vote on how it is spent. Vote weight could be distributed however, for example, 50% to users 50% to devs.

    This kind of a system would be very possible to implement as a DAO, there are templates out there for making an organization like this. You could use BTC or ETH, both support DAOs. The benefit there is that since no single entity holds the money, no single entity has to file taxes and claim that money as income. It also automates the voting process and solves the issue of users having to trust a single person or organization to hold and distribute the funds. Making a DAO on Bitcoin lightning could reduce tx fees to less than a penny per donation.

    You could also incorporate it as a non-profit depending on your jurisdiction. Many organizations like the Linux foundation have pursued this route, look at what things they have tried and what has worked. Also just a link to leave here for your research, I’m not suggesting you use this, I’m just saying it’s relevant interesting thinking in this area: https://blog.obyte.org/kivach-cascading-donations-for-github-repositories-2b175bdbff77

    Other relevant links/research for you: https://github.com/Resolvr-io and https://nostrocket.org/About

    Also research Gitcoin, they have used quadratic funding to fund a number of OSS web3 projects in a similar manner to what you’re proposing. I have participated in a few of their funding rounds as a donor and a recipient. Their interface is a mess but the concept is cool.

    • The solutions you linked are interesting but ultimately neglect the most important aspect in my opinion: discussion among stakeholders. They also tend to use bitcoin, which has proven it could not gain enough traction to be mainstream yet.

      Taking the core principle of Kivach and making it viable in state-backed currency, using the platforms devs have already set up for payment would be a great leap forward. We need to get something going and build support from a critical mass.

      Why is Kivach not more widely used? We should tackle these questions and try to improve it.

      •  makeasnek   ( @makeasnek@lemmy.ml ) 
        link
        fedilink
        English
        1
        edit-2
        4 months ago

        The discussion portion wouldn’t happen over BTC, that’s just for funds management and voting. Discussion could happen on a forum, lemmy community, matrix chat, discord hangout, or other space. I suggest BTC because with smart contracts you can automate the voting process among stakeholders and make it so you don’t need to trust any single party to hold onto the money. It solves this exact problem of coordinating financial transactions with multiple people who can’t trust each other. It also solves the “how do we accept donations internationally easily” problem. Bitcoin has a market cap which places it in the top 25 countries by GDP, higher than Sweden. 850 billion dollars. On average, adoption and market cap grows year on on year. It may not be the USD, but it’s already more widely accepted than most national currencies.

        Re: kivach, it’s not more widely used because many people don’t know about it, it’s using a lesser known cryptocurrency as a base, and people reflexively go “eew crypto” even though it’s perfect for solving these kinds of problems. Anytime you have a distributed decision-making process that needs to be international and you don’t want to trust a single party or parties to manage that system, crypto is good at solving that problem. Most people know it for solving that problem in the realm of currency production and decentralizing finance, but it has much broader implications in terms of anywhere you have distributed decision making. Note that kivach doesn’t have any kind of distributed decision making or voting, it’s basically just a smart contract bot that distributes coins based on github dependencies.

        Bringing the state into this just brings us a bunch of problems and no solutions. For one, every state or block of states has different currency, and for every state whose population you want to participate, you have to some how bridge access to that state’s banking system and incorporate it into the system. And you can’t do it in a decentralized way, so you need some legal entity to be formed to handle all this and the staff to do all this. So that’s a nightmare. State-backed currencies can’t easily or cheaply be transmitted electronically across borders, and often, even within the same country. Or you have to use some third-party service like PayPal or Venmo to do this, which is its own set of complications. More nightmare. Plus, hello fees and making microtransactions prohibitively expensive. And that’s just moving funds from A to B, that’s not even getting into managing the voting system and navigating the laws every single country whose currency you use, each of which are going to have their own interpretation of whether or not your voting system is compliant with their legal system and whether or not they agree that funding a project like the Tor project is allowed. You may say you don’t care what Turkeys laws say, but if you want to maintain a bridge to their banking system, you have to. So that’s what incorporating the state and fiat system brings you. Or, you could write a smart contract once and have the administration of this system run automatically forever and be available to anyone in any country automatically. Running an international organization which receives funds, holds funds, votes on how to distribute those funds, distributes those funds is exactly the kind of thing blockchain excels at.

        • Got you. It is a shame that this part of crypto is not more widely publicized, as it is its most interesting use in my eyes.

          Still think it can’t be the only solution if we want wider reach. To avoid taxes and legal structures, I want to study whether we can interface with projects’ available donation options and automatically split a user donation into several. Skipping the “finding the donation option for each project” problem which can be tediously human-solved for a proof of concept, the issue would be whether the process could be easy for the user while not getting obliterated by transaction fees.

          There is no need to develop a crypto side since I’m sure a way to interface with Kivach could be found if the other fiat currency problems are solved beforehand.

          Thank you for your input, it means a lot.

  •  treadful   ( @treadful@lemmy.zip ) 
    link
    fedilink
    English
    34 months ago

    Think I’ve seen this already with some open source groups. But they aren’t open to other projects and generally take direct management over them.

    Only way I would consider this (as an open to all thing) is if it were run by a well known non-profit that already operates in FLOSSland. Like FSF or something like that.

  • Everything that involves money needs to be stupidly simple, and even then there will be controversy. I see what you’re going for, and it does address an important issue. I don’t think it’ll work with this level of complexity. Hopefully I’m wrong or we can come up with something else that would.

  • What about an approach where there’s a website to facilitate people donating to FOSS project, and all that website needs is a list of possible recipients of the FOSS project (e.g., app developers, libraries it uses). When I want to donate I go to this website and say “I want to donate to Lemmy”, and it shows me “Lemmy has these possible recipients: X, Y, …”. When I say “I want to donate $10” the website asks “should we distribute this evenly among all Lemmy recipients?” (which might be the default) or I have the option of unchecking some recipients or or assigning some recipients a higher percentage of my donation.

    • That’s sort of what is preached here. However, no one is gonna bother making a complete list of projects and dependencies. And we still have to define what is the even distribution among Lemmy and its dependencies for example, hence the need for a democratic structure

  •  wiki_me   ( @wiki_me@lemmy.ml ) 
    link
    fedilink
    English
    14 months ago

    it’s basically the non profit software in the public interest that is governed by a board elected by open source contributors. From it’s website:

    Donations to SPI that are not marked for a particular project will be distributed to the projects that are currently affiliated with SPI as needed, and/or used for SPI’s own expenses.

    Maybe there is a place for non profit where donors elect a board of director that decides how to fund things, giving non programmers a way to influence the development of FOSS (and non programmers could have a lot to offer).

    There is also tidelift which does something similar.

    • SPI is great, didn’t know about it. Sadly, it would need more projects in it to be a core pillar of FOSS funding. They are clearly aiming to build something stable and that’s good for them. But I feel like their application process is a little too long for simply distributing funds around.

  • I like the idea of just one point to donate to lots of open source projects but I’m not sure if union is the right word for it? I immediately thought of worker’s unions and they dont collect and distribute money for their members, so they? (Or at least it’s not their primary function?)

    • Many unions collect fees, for operational costs, publications, transportation costs, etc.

      Especially they collect funds to support those who have been unjustifiably laid-off, or during strikes to have emergency pay so they can refuse to return due to fin.pressure. Families of disabled or killed at work members…

      The thing here is you have for profit corporations producing code as well as executives, and unemployed privateers. Who gets what?

      @jlow @GroundPlane

      • Among distribution rules to be discussed, one of the first points would be who is eligible. I would not want corporations to be supported by these donations, but some companies actually focus on FOSS as a service and I could see them getting in on it. I would exclude devs employed at a company getting paid to contribute as well.

        I think this would not drastically change the status quo. Today, corporations contribute to FOSS, but mostly to make sure their hardware or other software is well supported. They will still have that incentive if there is a central donation system that excludes them.

      • Especially they collect funds to support those who have been unjustifiably laid-off, or during strikes to have emergency pay so they can refuse to return due to fin.pressure. Families of disabled or killed at work members…

        Ah, I didn’t think of that, yeah, unions are even more amazing then I thought. So calling it a union would make sense (but I’m still unsure if it’s the right name if it’s primarily about getting money for people’s work?). OP also called it a co-op which I think is more fitting, personally.

  • The big stumbling block I see with this approach is that it’s not just the maintainers who do the work, as others also contribute code fixes, documentation and help in the community.

    I can see the very real need to support the core maintainers on the projects we use, but I can also see that causing friction if the others who contribute to a project being successful and useful are overlooked. I know that some projects’ communities put bounties on bugs they want dealt with, which helps to a degree, but still leaved many contributors effectively donating their time whilst a core group get paid. For instance, I’ve submitted and had accepted several patches across several projects that I use. They’ve usually been tobadd functionality that I wanted and saw others wanted too. I don’t think I’d want paying for them, but I’d probably feel different if I knew the person accepting the pull request was being paid, either commercially or via a scheme like this. Maybe that will work out in practice, but I’d be worried about the change in dynamic.

    I don’t have a good solution to this, but I thought i’d offer it as a different viewpoint.

    • Thank you for the input. I guess it would be hard to track community engagement. Also, whatever is done with the donation is up to the project maintainers, in any case. Accepting the pull request in your case is also a great deal of work given the amount of spam they can create, so it is still fair in some way. No one will get rich off of donations anyway