GitRoyalty – First OSS Paywall
gitroyalty.com
gitroyalty.com
GitRoyalty is an experiment that allows OSS project maintainers to hide a package’s manifest file (or build script) behind a monthly subscription. This way users will have to subscribe in order to install the package using dependency managers like NPM. The idea is that with low prices and the power of numbers, both popular and transitive OSS dependencies can sustain development instead of relying on a few enterprise sponsors that could influence the direction of the projects.
After setting up an Individual or Team subscription, users are given a license key which is used to install a package with their dependency manager:
npm i git+https://<license>@gitroyalty.com/user/repo#semver:^2.0.1
* GitRoyalty works for projects with permissive licenses like MIT or Apache 2.0, but not copyleft licenses like GPL (which most companies like Microsoft avoid completely)* While this isn’t FOSS, it keeps the best parts of open source in place (open GitHub collaboration, permissive licensing) while incentivizing users to pay contributors
* Although some wildly successful OSS projects can sustain from donations, only core contributors get paid anything, when in reality there are hundreds or thousands of other developers. GitRoyalty distributes subscription earnings to all developers based on their contributions.
* The barrier to subscribe and install a package is quite low, especially after adding a payment method once. Login with GitHub, hit Subscribe, install. All subscriptions come with a 2 week free trial and are charged in aggregate the 1st of every month to keep processing fees low. https://imgur.com/3WpwBUz
I just set up my own 2.6k star GitHub project with GitRoyalty and have 6 subscribers so far, for a total of ~$10/month for me and my contributors.
https://gitroyalty.com/saoudrizwan/Disk
I hope to get more subscribers as I release more updates to my project, since any previous versions before GitRoyalty will always be free (due to the fact that previous manifest/build scripts will be in git history).
Let me know what you think! I’d love for more people to try this out with even completely new projects so we can see if this experiment has potential. Obviously this won’t work for everyone but I hope it can be a solution for projects that desperately need funding and can’t find sponsors.
As for barriers to subscribe, are you sure it's low? What do companies think of this? Aren't they going to treat this exactly the same as proprietary software? With full pre-qualification of the vendor?
No, those aren't "the best parts of open source". The best part of open-source is building a collective public commons, which this model does not allow for.
I believe documentation would become outdated sooner than build scripts with new releases, and would require effort to maintain (more than build scripts), which would better justify to pay.
Anyway, the idea of GitRoyalty seems not to make technically impossible to share the payed content, but rather to propose a way for honest people to remunerate honest developers and library maintainers.
As for the legal aspect, permissive licensing like MIT/Apache 2.0 allows developers and consumers to distribute and use code pretty freely, which is what makes OSS so great and why GitRoyalty doesn't impose any other licensing.
One of the driving factors behind making GitRoyalty was the corporate mentality I've experienced where management will pay for whatever is necessary, but think twice before sponsoring anything (especially transitive projects).
Seems like a really hard problem to measure contribution automatically. Anyone know how you'd do this?
[0]: https://gitroyalty.com/docs/faq/how-do-open-source-developer...
congrats on the launch though, i'm really excited about incentivized cooperation without dedicated managers!
I can't even begin to imagine the headache and potential problems of having to deal with this. Isn't there a better way to handle supporting open source projects?
But other than that looks pretty with more or less clean execution.
* AWS
* Heroku
* GitHub
* Circle CI
(this whitelist is a WIP and I'm open to adding more)
Also since the goal of rate limiting by IP is to limit # of users, not necessarily # of machines, we allow you to remove any previously used IP addresses from your subscription's history. This way if you hit your limit, just go to the payment page, hit 'Manage IPs' and remove any unused IPs.
See this doc for more details: https://gitroyalty.com/docs/faq/how-do-subscriptions-work
>In addition, Content found on or through this Service are the property of GitRoyalty, Inc. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.
So anything obtained through this service is proprietary now. After reading this, it's clear why this doesn't work with the GPL.
If software obtained through GitRoyalty remained free software, I honestly might have been fine with it. But as is, no thanks.
There was a misunderstanding of what 'Content' entailed on my part–it was meant to encompass anything without a license already attached in order to grant us rights to distribute unlicensed software. Our ToS should have been more specific, I apologize.
Profitable is a strong word for making 75 cents a month, which is the highest of all the repositories.
I took it as the equivalent of looking at a list of "Patreon" projects and the total contributions they make, rather than a storefront with sticker prices.
1. Rewards bigger, more verbose contributions 2. Punishes maintainers for accepting contributions
Contributors will optimise for the largest impact and core maintainers will end up spending most their time trying to reduce that impact.
I think if a project maintainer were to act maliciously in terms of earnings share, developers would call them out and less people would contribute as a result.
Is there a risk of popular projects that are distributed through GitRoyalty having unofficial versions with malicious code on the package repositories, similar to now typo-squatting works?
These issues already exist in the world of open source, as you note, and the only way that I know of to stop it would be to have a more restrictive license (and to pursue any violations).
If you badly want my money, sell me your product honestly, under a commercial license, and don't call it OSS. There are other "source available" licenses.
If you want a donation from me, show your tipping jar / patreon / whatever else link.
If you want your software be OSS, well, don't conceal the source.
I suppose that a project of any significance that would use such a "paywall" will be plainly forked, with a build / manifest / whatever file maintained manually.
And I personally have not had any success with donations, whereas 2 days after setting up my project with GitRoyalty me and my contributors are making $10/month.
I wonder how funds acquired via GitRoyalty get distributed, from the legal standpoint, and what makes such distribution different from distributing a share from a sale of a commercial license.
That's what struck me as odd too. #2 of the OSI "Open Source Definition" seems useful.
The program must include source code, and must allow
distribution in source code as well as compiled form.
Where some form of a product is not distributed with
source code, there must be a well-publicized means of
obtaining the source code for no more than a reasonable
reproduction cost, preferably downloading via the
Internet without charge. The source code must be the
preferred form in which a programmer would modify the
program. Deliberately obfuscated source code is not
allowed. Intermediate forms such as the output of a
preprocessor or translator are not allowed.
So charging for a reasonable reproduction fee is fine, but a subscription would seem to violate the spirit of this, since the subscription isn't being paid to github for their cost of reproduction. AFAICT, the fee is paid to the developers, not to anyone that does any actual reproduction.(Now, the traditional 'sell copies of software' doesn't work so well for FLOSS, since every customer of yours can start selling it themselves, or give it away to anyone, which is why this approach is rare. But it's still FLOSS)
However I recommend setting up your own project on GitRoyalty since we automatically replace your license key with a bundle identifier (i.e. bundle:<repo>). This way, before users can download your project, we confirm their IP addresses are associated with active subscriptions to all your transitive dependencies.
I wrote a bit more about transitive dependencies here: https://gitroyalty.com/docs/faq/how-do-transitive-dependenci...
Some things that bugs me:
* I wouldn't term it as an 'OSS paywall'. I would rather term it as an 'package paywall', or 'repo paywall', or something else.
* I would prefer not using GitHub accounts, and rather have an own GitRoyalty account. I would like to have multiple login methods (like GitHub, GitLab, Google, Facebook, GitRoyalty account).
* I think the process of using GitRoyalty package as dependencies are too complex, I'm not sure if anyone would like an experience of searching (a git-committed) package-lock.json, changing all of the GitRoyalty package links, installing the packages, and removing the license keys when committing an updated package-lock.json. There should be a more straightforward way (preferably without any file changes, e.g. using environment variables) to install dependencies.
Also, I'm pretty impressed with the beautifully done website. May I ask what the site/docs are made of?
This is definitely on the roadmap and eventually we'll expand outside of GitHub and allow repos from other hosts like GitLab.
> ... changing all of the GitRoyalty package links, installing the packages...
You should always commit your GitRoyalty license keys and share it with your teammates. This way you never have to deal with your package.json/lock files directly, just `npm install` and you're good to go! (This takes care of updating for you as well)
> I'm pretty impressed with the beautifully done website.
Thank you! I just used bootstrap and made the docs myself.