Start a PureScript fund?


#1

Continuing the discussion from PureScript bindings for 'ssh2-sftp-client' v0.1.0 released:

@paluh’s reply to me on the above-linked post got me thinking again about how I can contribute some money every month to the PureScript project and its ecosystem.

Why do I want to contribute money? I appreciate the people who contribute in ways that are too hard for me to help with, like compiler bug fixes and feature additions, core library maintenance, and answering user questions about the history of the project and how the type checking works. I want to show my appreciation to them to ensure the PureScript project always has people like this around. The interesting thing is I believe current contributors are here for mostly non-monetary reasons, which means any monetary contributions won’t be effective at helping encourage the contributors to the project. Perhaps, however, we can have a tipping/donation technique in which people pledge to donate X dollars to the PureScript fund if a work item is done, or just to make a donation in the name of someone you really appreciate. Something the PureScript project really needs right now is documentation, so perhaps we can use a PureScript fund to fund documentation bounties directly or use the donate-to-PS-fund technique for documentation contributions.

Money allocation to a project can be really tricky – just look at how money is allocated in business and government to their project and administration groups! So, if a PureScript fund/foundation does get started, it would need an chart/scope to advertise so contributors can see where their money goes. The key to a successful PS fund would be a limited scope, most important to ensuring that would be excluding funding code production from the initial charter/scope. We can create a GitHub project to support proposing and discussing changes to the scope. We’d also need a person whom contributors trust to allocate the funds. Maybe the OpenCollective platform would make fund collection and distribution easy, transparent, and auditable.

So what do I think my monetary contributions can do to be productive in the project? At the least, I can help pay for website hosting! Also, if a PureScript fund gets big enough, we can maybe afford to host more server-resource-intensive cloud-hosted tools, for example a more memory-intensive TryPureScript design which supports a larger variety of backends.

Regardless of how it’s spent, I believe a non-trivial part of ensuring the long-term health of a software project involves money, and I’d like to be part of the group of the people who contributes some money.

Other avenues for promoting the longevity of the PureScript project and its ecosystem:

  • Consulting/support team: For development of PS which requires expertise and non-trivial effort, a well-funded business can pay them appropriately for specific jobs.
  • Advertising on PS website or similar: I wouldn’t vote for it, but another source of revenue for the PS fund. I’ve heard of ad networks which target software developer people and are responsible/don’t show embarrassing things, maybe https://codefund.io/ or https://www.carbonads.net/?
  • Patreon: Encourage core developers to open peer-to-peer funding accounts, like Patreon or something, if that would interest them. Maybe there’s someone who really wants to help with the documentation project but would be more encouraged/motivated by Patreon followers.

#2

Could do an OpenCollective. Just need an admin of https://github.com/purescript/purescript to authenticate with OpenCollective and claim the https://opencollective.com/purescript group. It can just sit there and do nothing until someone needs some money for a PureScript-promoting project.


#3

Think most a lot of people would like to contribute but I’d think the maintainers probably wouldn’t want the extra pressure of the expectation of an output for given money.

I’m just speculating there, but that’s how I’d feel. Though maybe money could be used for the infrastructure up keep like hosting and anything like that?


#4

I don’t want to mess with this idea. I think it is great and we need this kind of general found! I just don’t fully get how this kind of funding works. For me it is only a bit unclear how these money are going to be spent. Is it possible to give it some context and ramification? What are direct goals of this fund, what is its scope etc. With this information it would be easier to pledge more for me :slight_smile:
I understand @cmdv argument that projects authors usually don’t want to take a pressure from supporters but I haven’t met this kind of pressure in projects which I’ve supported on for example Patreon.
It is obvious for me that everybody has limited time resources and experimentation and innovation takes a lot more time… In other words I encourage you all Folks to be more open for direct founding!
From my perspective it would be really nice to be able to pledge money directly to support compiler or some project development or research or work related to promotion or other activities in PureScript ecosystem which I believe can make it stronger and more competitive.
I know that this can lead to a discussion about business / company driven ecosystem etc. I don’t see this risks currently and I think the more interesting and diverse stuff is done in PS land the better. Or maybe I just don’t really care about these problems :wink:


#5

It was pure speculation and if the core contributors find some financial aid to really help out then I’m all for it :blush:


#6

Looks like most of the administrative and legal burden would be offloaded to the Open Source Collective 501c6 (Non Profit) - Open Collective legal entity, and the cost for that service would would be a 10% + payment processor fees for all transactions. It’s not too bad.

About scope/charter of the fund, that’s something we’d have to decide. We’ll need to make a poll or similar to vote on the categories acceptable for reimbursement. It looks a few other similar OpenCollectives, like the Webpack OpenCollective, don’t detail the scope/charter of their fund, which is odd.

At first, and at least, the scope should include hard infrastructure costs, like servers and domain names, of the core project only. My personal opinion would be to add social/culture to the scope, which should cover things which keep PureScript socially interesting. That’s a fuzzy scope, but some examples which might fall into that is snacks for local meetups, maybe content production/docs which show the relevance of the project, and if our funds get big enough we might be able to pay Justin full time to produce PureScript memes (haha). Back to serious, I’m sure there’s a good example which should be covered that I’m missing.

I’d like to avoid using funds to pay for person-hours of engineering, as that gets really expensive and is hard to fairly govern.

I added a wiki post right below this to collect ideas for the scope of the fund.


#7

This is a wiki post.

We can collect these and vote on them later.

Categories for Funds

Add ideas here! <Category>: <examples>

Infrastructure: servers, domain names
Funds can be used to pay to host purescript.org, including Try PureScript, Pursuit, and Discourse, along with relevant domain names. With enough funds we could beef up the server for Try PureScript to be able to compile more of the ecosystem.

Ways To Donate

  • Recurring donations via Open Collective towards a particular cost, where each cost has a goal budget to reach

  • Company advertising on the PureScript home page, perhaps only for companies with stories we’d like to highlight and for a specified monthly donation like $500. Funds allocated fairly across categories unless company chooses a particular category.


#8

An interesting post came up in my Twitter feed today that is related to this thread about starting a PureScript fund: https://nadiaeghbal.com/foundations

I summarized the important points below. The only effect it has on the thread thus far is that it re-inforces the idea that project governance should be far apart from funding and funding governance.

Note that I think “governance” in the article conflates governance of the project’s funds with the governance of the project’s maintenance and direction, so take care of that detail when reading. In this post, I didn’t hear any opinions about a fund’s governance, but only a project’s governance. I think a fund needs some form of transparency and governance, so this post doesn’t affect our thread’s opinions on a potential PureScript fund’s scope/charter.

– Foundations as a service provider –

“I also don’t think it’s necessary for a project to start its own 501© to handle these tasks. It’s more efficient for these services to be “virtualized” by a few providers, who lower coordination costs for everyone.” This is what OpenCollective offers a project like PureScript.

“Eventually, services like Patreon might make it easier to fund contributors in a highly visible way [as opposed to funding a central project itself]. … It’s worth imagining a world where we don’t need to associate a legal entity with the project at all.” This is a reference to a project’s contributors being funded rather than the project’s foundation/governor.

– Foundations as a governance tool –

“If a project is wildly successful, it’s rare that it will continue to grow without any governance conflicts. …software foundations became the standard response to these issues [of corporate influence].”

“In either case, (leaning into or away from corporate ownership) we’ve managed to formalize one or two points of failure for “the project” , which is otherwise inherently distributed. … But just as “the government” is not “the people”, but rather a representative body whose legitimacy derives from sustained popular support, “the foundation” is not “the project”, and should not be treated as such.”

I believe we can infer from this that the author’s opinion is that a foundation should not be responsible for the governance & direction of the project. Instead, the project should have a group/process which is separate from the foundation who is responsible for governance.

– A distributed, not oligarchic, system –

“Although the common approach (in a project’s early days of growth) is to create a foundation to hold these assets, I’d like to suggest two alternatives: 1) Entity(0) holds the assets and uses them to drive early adoption and development, 2) Funds are distributed to major or strategically desirable contributors, who help drive adoption and development.”

“The medium-to-long term goal, however, is to distribute the opportunity for contribution across multiple locations (or maintainers). I emphasize “opportunity” because I think it’s conceivable that Entity(0) continues to be the only major actor, if they earn and maintain the trust of their community. But the community (i.e. “the project” ) should be able to eject or impeach them if they fail to do a good job. … Successful open source projects should exist beyond the control of any one company or foundation.”

A final note from the author about governance (of the project’s maintenance and direction):

“…when does a project even need to formalize its governance? I have a pet theory…that projects only need to define governance at the first sign of conflict. … In theory, if you scaled to thousands of happy contributors and millions of happy users without anybody raising concerns about who’s running the thing, I’m not sure why you really need to define anything.”

That’s an interesting thought, but I would prefer to have a well-defined open governance model, as it is more empowering to contributors and potential maintainers.