gratipay / inside.gratipay.com

Here lieth a pioneer in open source sustainability. RIP
https://gratipay.news/the-end-cbfba8f50981
57 stars 38 forks source link

seek funding from Mozilla #637

Closed chadwhitacre closed 6 years ago

chadwhitacre commented 8 years ago

In conversation at #314, Louis-David Benyayer suggested that we seek funding from Mozilla and other large open-source foundations.

https://twitter.com/LDBenyayer/status/735556364269916162


We're writing our proposal at https://public.etherpad-mozilla.org/p/gratipay-moss-track-2-2016.

The application form is at https://docs.google.com/forms/d/1rwYQTT-9-eldS-kElY646bMwMzJpxfL8lDskX86xgCQ/viewform.

chadwhitacre commented 7 years ago

Actually, scratch that, here a CSV of GitHub follower counts for Gratipay team owners.

[gratipay] $ GH_USER=whit537 GH_PASS=deadbeef ./owners-by-github-followers.py > owners.csv
#!/usr/bin/env python
from __future__ import absolute_import, division, print_function, unicode_literals

import csv
import os
import requests
import sys

teams = open('teams.txt').read().split()
gratipay = 'https://gratipay.com/'
gratipay_public = gratipay + '{}/public.json'
github_user = 'https://api.github.com/users/{}'
out = csv.writer(sys.stdout)
USER = os.environ['GH_USER']
PASS = os.environ['GH_PASS']

for team in teams:
    owner = requests.get(gratipay_public.format(team)).json()['owner']
    elsewheres = requests.get(gratipay_public.format(owner)).json()['elsewhere']
    github_username = elsewheres.get('github', {}).get('user_name', '')
    github_url = ''
    nfollowers = -1
    if github_username:
        github_url = 'https://github.com/' + github_username
        nfollowers = requests.get( github_user.format(github_username)
                                 , auth=(USER, PASS)
                                  ).json()['followers']
    out.writerow((gratipay+team+'/', gratipay+owner+'/', github_url, nfollowers))
chadwhitacre commented 7 years ago

Here's the same thing in a Google Sheet for easy sorting.

chadwhitacre commented 7 years ago

Looks like we have nine Team ~owners who have more than 1,000 followers on GitHub:

n nfollowers ~owner notes
1 13,539 https://gratipay.com/~Sindre%20Sorhus/
2 4,750 https://gratipay.com/~feross/
3 1,955 https://gratipay.com/~bbatsov/ has three teams
4 1,898 https://gratipay.com/~kangax/
5 1,761 https://gratipay.com/~kytrinyx/ digest this history before contacting
6 1,417 https://gratipay.com/~technomancy/
7 1,304 https://gratipay.com/~sokra/
8 1,196 https://gratipay.com/~IonicaBizau/
9 1,175 https://gratipay.com/~dougwilson/
chadwhitacre commented 7 years ago

We should also look through the folks affected by #432, if that's the work we're going to pitch. The folks who already have a Team may have less incentive to endorse us.

chadwhitacre commented 7 years ago

We also don't want to discount cases where the project is higher-profile than the person, e.g.:

https://gratipay.com/Font-Awesome/ https://gratipay.com/Moment.js/ https://gratipay.com/karma/

A manual sweep through the list may be in order as well, since the short-list should certainly also include:

https://gratipay.com/jsbin/ ~= https://gratipay.com/~rem/

chadwhitacre commented 7 years ago

I mixed star and follower counts into the spreadsheet for any repo linked in the homepage, onboarding or todo fields, using the script below and some sheet manipulation.

#!/usr/bin/env python -u
from __future__ import absolute_import, division, print_function, unicode_literals

import csv
import os
import re
import requests
import sys

teams = open('teams.txt').read().split()
gratipay = 'https://gratipay.com/'
gratipay_public = gratipay + '{}/public.json'
github_user = 'https://api.github.com/users/{}'
github_repo = 'https://api.github.com/repos/{}'
out = csv.writer(sys.stdout)
USER = os.environ['GH_USER']
PASS = os.environ['GH_PASS']

for team in teams:
    json = requests.get(gratipay_public.format(team)).json()

    homepage = json['homepage']
    onboarding = json['onboarding_url']
    todo = json['todo_url']

    repo = ''
    for link in (homepage, onboarding, todo):
        m = re.match(r'https://github.com/([^/]*/[^/#]*).*', link)
        if not m:
            continue
        repo = m.groups()[0]

    nstars = nfollowers = -1
    if repo:
        nstars = requests.get( github_repo.format(repo)
                             , auth=(USER, PASS)
                              ).json().get('stargazers_count', -2)
        nfollowers = requests.get( github_user.format(repo.split('/')[0])
                                 , auth=(USER, PASS)
                                  ).json().get('followers', -2)
    out.writerow(( gratipay+team+'/'
                 , 'https://github.com/'+repo if repo else ''
                 , nstars
                 , nfollowers
                  ))
chadwhitacre commented 7 years ago

We have 59 Teams with repos with 1,000+ stars, including eight Teams with repos with 10,000+ stars!

Stars Team ~owner Notes
44,604 https://gratipay.com/font-awesome/ ~davegandy
27,775 https://gratipay.com/moment.js/ ~momentjs
18,446 https://gratipay.com/webpack/ ~sokra
16,465 https://gratipay.com/md-for-bootstrap/ ~FezVrasta
12,226 https://gratipay.com/dokku/ ~josegonzalez ~progrium (2,745 followers) is also involved
11,348 https://gratipay.com/webtorrent/ ~feross
11,087 https://gratipay.com/opencv/ ~OpenCV
10,104 https://gratipay.com/devdocs/ ~Thibaut
chadwhitacre commented 7 years ago

Hrm ... some data corruption in the spreadsheet due to dash being sorted differently. One sec ...

chadwhitacre commented 7 years ago

Okay, s/opencover/opencv/ ...

chadwhitacre commented 7 years ago

Why isn't https://gratipay.com/karma/ showing up? The Todo link is to the GitHub repo ...

chadwhitacre commented 7 years ago

Their Todo URL is http instead of https, updating ...

chadwhitacre commented 7 years ago

I also fixed https://gratipay.com/deadbeef/. That's the only other one I found amongst the -1s on the sheet.

chadwhitacre commented 7 years ago

I manually updated their numbers on the spreadsheet.

chadwhitacre commented 7 years ago

Okay! The -2s are fine. I think we have our shortlist:

Per GitHub followers:

  1. https://gratipay.com/~Sindre%20Sorhus/
  2. https://gratipay.com/~feross/
  3. https://gratipay.com/~bbatsov/ ← three teams!
  4. https://gratipay.com/~kangax/
  5. https://gratipay.com/~kytrinyx/ ← digest history before contacting!
  6. https://gratipay.com/~technomancy/
  7. https://gratipay.com/~sokra/
  8. https://gratipay.com/~IonicaBizau/
  9. https://gratipay.com/~dougwilson/

Per stars:

  1. https://gratipay.com/~davegandy
  2. https://gratipay.com/~momentjs
  3. https://gratipay.com/~sokra
  4. https://gratipay.com/~FezVrasta
  5. https://gratipay.com/~josegonzalez
  6. https://gratipay.com/~feross
  7. https://gratipay.com/~OpenCV
  8. https://gratipay.com/~Thibaut

https://gratipay.com/~progrium ← for dokku https://gratipay.com/~rem ← for jsbin

That's 19. Two more things to look at:

chadwhitacre commented 7 years ago

I've mixed in teams under review (gist). The two that jump out at me that we might add are:

  1. https://gratipay.com/mottie/
  2. https://gratipay.com/tymondesigns/
chadwhitacre commented 7 years ago

Twitter followers count suggests we add:

  1. https://gratipay.com/~jamescampbell/ (14,246) and maybe
  2. https://gratipay.com/~zefhemel/ (8,723)
chadwhitacre commented 7 years ago

I added a "Score" column, which sums the Twitter followers and Stars with the greater of the Gratipay ~owner and repo owner GitHub followers. It suggests https://gratipay.com/~mxstbr/ (13,511) and perhaps https://gratipay.com/~thomaspark/ (8,541).

chadwhitacre commented 7 years ago

This listing based primarily on score (Twitter followers + GitHub followers and stars) seems as good a one as any. The next step is to draft an email and send it out!

n Score ~user
1 71,540 https://gratipay.com/~davegandy/
2 46,458 https://gratipay.com/~Sindre%20Sorhus/
3 28,852 https://gratipay.com/~momentjs/
4 27,213 https://gratipay.com/~feross/
5 25,312 https://gratipay.com/~kangax/
6 19,749 https://gratipay.com/~sokra/
7 18,400 https://gratipay.com/~OpenCV/
8 17,376 https://gratipay.com/~FezVrasta/
9 17,253 https://gratipay.com/~josegonzalez/
10 14,258 https://gratipay.com/~jamescampbell/
11 13,511 https://gratipay.com/~mxstbr/
12 13,311 https://gratipay.com/~kytrinyx/
13 13,272 https://gratipay.com/~bbatsov/
14 11,207 https://gratipay.com/~Thibaut/
15 10,199 https://gratipay.com/~zefhemel/
16 8,541 https://gratipay.com/~thomaspark/
17 7,887 https://gratipay.com/~Dignifiedquire/
18 https://gratipay.com/~rem/ (jsbin)
19 https://gratipay.com/~progrium/ (dokku)
chadwhitacre commented 7 years ago

I guess let's use this pad for the email draft:

https://public.etherpad-mozilla.org/p/gratipay-moss-track-2-2016-endorser

chadwhitacre commented 7 years ago

We've decided to implement a more batched process for considering MOSS applications, so we'll be having an application deadline every 3 months for that round of consideration.

The first of these deadlines is 11:59pm UTC on August 31st, 2016 - basically, the end of August. They will then occur every three months thereafter.

So if you or someone you know is pondering a MOSS application, now is the time to send it in. The deadline is a little over a week away.

https://groups.google.com/forum/#!topic/mozilla.moss/E5d4Owvb7lk 😞

chadwhitacre commented 7 years ago

That's a curveball. We want to be done with #432 by the time the next deadline will roll around (Dec 31). :-/

chadwhitacre commented 7 years ago

Also:

We expect the vast majority of MOSS awards to be singular rather than regular - that is, support for doing a particular defined thing, rather than ongoing support for a project in general.

https://wiki.mozilla.org/MOSS/Mission_Partners

chadwhitacre commented 7 years ago

Okay, I posted the following on the mailing list. Let's circle back in November.

Gerv, et al.,

I rewrote Gratipay's MOSS Mission Partners application yesterday ... and then learned about the new quarterly deadline ... which we just missed. D'oh! :-)

In case you're interested to see how our application has progressed, here it is: http://bit.ly/2cWuX7b.

If you're willing to consider our application out of band, we'd be happy to submit it. Otherwise we'll check back in late November to see about the next quarter.

Either way, thanks again for running this program! All the best! :-)

https://groups.google.com/forum/#!topic/mozilla.moss/CZY1TiyZOyY

chadwhitacre commented 7 years ago

Applications for Foundational Technology and Mission Partners remain open, with the next batch deadline being the end of November 2016.

https://blog.mozilla.org/blog/2016/10/03/moss-supports-four-more-open-source-projects-with-300k/

chadwhitacre commented 7 years ago

Would you like to be added to https://wiki.mozilla.org/MOSS/Friends? If so, email me. And feel free to tell your members about MOSS.

https://twitter.com/gerv/status/801013422724939776

💃

chadwhitacre commented 7 years ago

To: Gerv at Mozilla Subject: Gratipay → MOSS/Friends

Thank you for the invitation to add Gratipay to MOSS/Friends! :-)

How about the following?

Gratipay

Gratipay helps companies sustain the open-source ecosystem they depend on, through weekly recurring funding. As of late 2016 there are over 200 projects on Gratipay, which have collectively received more than $1M over the past four years. Gratipay itself is an open organization, and is funded on Gratipay. Apply here.


Done.

https://wiki.mozilla.org/MOSS/Friends 💃

chadwhitacre commented 7 years ago

https://twitter.com/Gratipay/status/801030136761982976

chadwhitacre commented 7 years ago

Maybe we should just go for it?

We're going up against Open Collective, which has raised $805,000 in venture capital. We think open source deserves an open platform, non-profit and funded on itself. That's why we're asking for the full amount of $250,000.

chadwhitacre commented 7 years ago

I've reached out to someone privately about endorsing us.

andrew commented 7 years ago

👋

chadwhitacre commented 7 years ago

@andrew has agreed to endorse us! 💃

Any particular points you'd like me to highlight?

chadwhitacre commented 7 years ago

@andrew Since you've successfully gotten grant funding recently, perhaps you could advise on how to approach this. Do we go for https://github.com/gratipay/inside.gratipay.com/issues/637#issuecomment-262227328, or should we try for something more modest? What do you see as Gratipay's distinctives and needs?

chadwhitacre commented 7 years ago

Ask your endorser to write a paragraph or two on why supporting your work via this grant is a great idea.

What future for Gratipay could you get excited about? Are there particular features or improvements you'd like to see? We've got our own ideas, of course. Let's find something we can converge on. :)

andrew commented 7 years ago

cc'ing @benjam in as he's the grant specialist (although snowed under for the next week so might be slow to respond)

As you mentioned in https://www.youtube.com/watch?v=Rj88uGUB7tw and https://github.com/gratipay/inside.gratipay.com/issues/852#issuecomment-255098337, making it easy for businesses to easily see and fund all the open source software the depend upon across their whole business has a lot of potential to help business realize the risk factor of not funding all to of these projects that their business depends upon, something which until now has been a very hard thing to do.

andrew commented 7 years ago

With respect to how to plan the grant, I'd focus on specific outcomes and how they will have an ongoing positive impact as well as what other good initiatives those outcomes will support.

I seem to remember that MOSS prefers to fund specific goals/projects rather than ongoing maintenance although I don't believe that they have rejected any application yet.

chadwhitacre commented 7 years ago

I do think we need to focus on companies more than projects. There's an obvious felt need among projects to receive funding, signing them up is not the hard part. The hard part is finding the hook to convince companies to sign up and pay up. Making it as easy as possible to get money to the right place in terms of dependencies is one aspect, but that really is just removing barriers, which is not enough in itself to motivate companies to action. To be honest I think diversity is probably the strongest related pain point for companies (our experience under Gittipay 1.0 bears this out). Not sure how that plays into a grant application here ...

mattbk commented 7 years ago

What do you mean when you say "diversity"?

chadwhitacre commented 7 years ago

I mean demographic diversity, primarily gender, race, and class.

chadwhitacre commented 7 years ago

The demographics in tech are out of whack. Here's the chart I find myself returning to:

44d851e4-cb5f-11e4-9e39-2545052d0bae

chadwhitacre commented 7 years ago

Alright, I've started dusting off the application draft. I'm going to spend some time with the roadmap and probably factor out a strategy document. It's encouraging that Gerv invited us to join MOSS/Friends. That means we're on their radar and pretty clearly mission-aligned. 👍

chadwhitacre commented 7 years ago

Here's that strategy doc. The roadmap is simpler now, ready for a going-over.

chadwhitacre commented 7 years ago

Okay, I've reworked our application.

Any particular points you'd like me to highlight?

@andrew Do you buy the idea that Gratipay matters because it's more truly open than Open Collective?

andrew commented 7 years ago

@whit537 I don't think I have enough information from both parties to make that distinction and that, even if that distinction did exist then it might be damaging to wider open source sustainability efforts to be divisive about it rather than supportive of all efforts to create a more sustainable community.

chadwhitacre commented 7 years ago

Fair enough. From my perspective, what I am seeing is that Open Collective has $805,000 in VC funding, and Gratipay has $0 in funding. Gratipay may already be irrecoverably irrelevant. Without funding, we're definitely done, because we won't be able to put in the same level of effort as Open Collective.

I actually talked with Pia the other day, and asked her what it could look like for those of us working on Gratipay to give up and start helping with Open Collective instead. She basically said, "Sorry, we can't accommodate that right now. Hopefully we can figure out open collaboration before our investors want to cash out in 10 years." 😞 That feels gross. Gratipay is losing, and the winner won't let us collaborate with them instead. That does not feel like open source to me. I think the world and open source should have a crowdfunding and payments platform that is competitive and relevant ... and open. Gratipay is open, but we're not competitive right now, and we won't be without funding.

Ask your endorser to write a paragraph or two on why supporting your work via this grant is a great idea.

Can we find a non-divisive way to say that it's "a great idea" for Mozilla to give Gratipay a chance to compete? For better or for worse, it's competition (from Open Collective in particular right now, but there are others) that is driving our need for funding.

If Gratipay disappeared, why would it matter? Would you care?

chadwhitacre commented 7 years ago

With respect to how to plan the grant, I'd focus on specific outcomes and how they will have an ongoing positive impact as well as what other good initiatives those outcomes will support.

Probably the thing to do is to ignore the intense burning sensation that I feel, and pitch them on $100k or whatever to add the "give to a bundle of dependencies" feature that we've been talking about:

As you mentioned in https://www.youtube.com/watch?v=Rj88uGUB7tw and https://github.com/gratipay/inside.gratipay.com/issues/852#issuecomment-255098337, making it easy for businesses to easily see and fund all the open source software the depend upon across their whole business has a lot of potential to help business realize the risk factor of not funding all to of these projects that their business depends upon, something which until now has been a very hard thing to do.

nobodxbodon commented 7 years ago

@whit537 I'm trying to see the distance between Open Collective and Gratipay here. From their number here, seems the total annual budget of all the projects is 100k. Not sure what the 277k budget on their homepage is about. Our weekly donation is around 1k, so annually 50k. It doesn't seem a big distance, considering they have VC to boost their marketing.

nobodxbodon commented 7 years ago

If Gratipay disappeared, why would it matter? Would you care?

@whit537 you can change "Gratipay" to the name of any endangered species :) Maybe you are instead asking "if it hangs in there, would it worth all the work and pain?"

mattbk commented 7 years ago

@nobodxbodon, weekly money moved is $1K, but Gratipay receives far less.

ETA: https://gratipay.com/Gratipay/ (was on my phone earlier).

nobodxbodon commented 7 years ago

@mattbk yes I'm aware of that. I was comparing the platform capability of moving money. IIUC Open Collective doesn't get a cut from donation, and income only comes from VC funds?

mattbk commented 7 years ago

@nobodxbodon :bowing_man:

Can we find a non-divisive way to say that it's "a great idea" for Mozilla to give Gratipay a chance to compete?

The non-divisive way of saying this is to say that we don't see the need to compete--because there's room enough for everyone in the marketplace at the moment. See also our previous discussions about the long tail and growth mindset.