Set up the Maintenance Fee
Enabling a Maintenance Fee for your project can be done in five simple steps. For projects hosted on GitHub, the easiest way to get started is to use GitHub Sponsors for your Maintenance Fee.
1. Communicate the change
Change is hard. Make sure to communicate the introduction of the Maintenance Fee to your community broadly before enforcing it.
First, consider opening an issue with the enforcement date of the Maintenance Fee. If your community uses GitHub Discussions or some other forum, post and pin an announcement with a link to the issue. Finally, use your blog, mailing list, and/or social media to inform your community.
Here’s some text to use as starter content for your announcement:
# Open Source Maintenance Fee Introduction
To ensure the long-term sustainability of this project, we are introducingan [Open Source Maintenance Fee](https://opensourcemaintenancefee.org).This fee will be required to be paid by all commercial users of the project.You can [pay via GitHub Sponsors](https://github.com/sponsors/<YOURORGNAME>).
We plan to enforce the maintenance fee starting on `<DATE>`.
Please see the [Open Source Maintenance Fee](https://opensourcemaintenancefee.org)for more information.
Feel free to personalize the text to your project and community.
2. Activate GitHub Sponsors
-
Follow these instructions on GitHub to enable Sponsors.
-
Add a “Maintenance Fee” monthly sponsorship tier at $10 with this text:
Use of this project in a commercial setting requires paying theMaintenance Fee.
Optionally, you may consider adding additional tiers so larger organizations pay a higher fee than smaller organizations. For example, you could add the following three tiers based on the size of the organization:
-
Add a “Maintenance Fee (Small Company)” monthly sponsorship tier at $10 with this text:
Use of this project in a commercial setting requires paying theMaintenance Fee. This tier is for a organizations that employfewer than 20 people. -
Add a “Maintenance Fee (Medium Company)” monthly sponsorship tier at $40 with this text:
Use of this project in a commercial setting requires paying theMaintenance Fee. This tier is for a organizations that employfewer than 100 people. -
Add a “Maintenance Fee (Large Company)” monthly sponsorship tier at $60 with this text:
Use of this project in a commercial setting requires paying theMaintenance Fee. This tier is for a organizations that employmore than 100 people.
3. Update your README
Add the following to your project’s README file. You are welcome to personalize the text for your project. We recommend placing it near the top of your README so it is noticeable.
## Open Source Maintenance Fee
This project requires an [Open Source MaintenanceFee](https://opensourcemaintenancefee.org). While the source code isfreely available under the terms of the LICENSE, all other aspects ofthe project--including opening or commenting on issues, participating indiscussions and downloading releases--require [adherence to theMaintenance Fee](./EULA.txt).
In short, if you are here for a personal project, welcome. For allcommercial use cases, a [Maintenance Fee is required](./EULA.txt).
To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/<YOURORGNAME>).
4. Add the EULA to your project
Add a EULA.txt
file to the root of your project’s repository. This file should contain the text of the End User License Agreement that requires the Maintenance Fee. You can use one of the example EULAs as a starting point.
5. Add the EULA to your package
.NET Example
Add the following to your .csproj
to include the EULA.txt
and require license acceptance:
<PropertyGroup> <PackageLicenseFile>EULA.txt</PackageLicenseFile> <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance></PropertyGroup>
<ItemGroup> <None Include="..\path\to\EULA.txt" Pack="true" PackagePath="EULA.txt"/></ItemGroup>
Build and publish your package.
JS Example
Add the following to your package.json
to include the EULA.txt
and reference it as the license:
{ ... "license": "SEE LICENSE IN EULA.txt", "files": ["../path/to/EULA.txt"]}
Build and publish your package.