Skip to content

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.

Change is hard. Make sure to communicate the introduction of the Maintenance Fee to your community early and broadly before enforcing it. Consider providing 3-6 months of lead time to address feedback.

For example, 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 introducing
an [Open Source Maintenance Fee](https://opensourcemaintenancefee.org). This
fee is required to be paid by all users of this project who generate revenue.
You can [pay via GitHub Sponsors](https://github.com/sponsors/<YOURORGNAME>).
We plan to enforce the maintenance fee starting on `<DATE>`. At that time, a
EULA on binary releases requires payment of the Maintenance Fee.
Please see the [Open Source Maintenance Fee](https://opensourcemaintenancefee.org)
for more information.

Feel free to personalize the text to your project and community.

  1. Follow these instructions on GitHub to enable Sponsors.

  2. Add a “Maintenance Fee” monthly sponsorship tier at $10 with this text:

    The Maintenance Fee is required for anyone with annual gross revenue of at least US$10,000 who
    uses this project as part of revenue-generating activities.

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 “Small Organization Maintenance Fee” monthly sponsorship tier at $10 with this text:

    **Organizations with fewer than 20 employees**
    Required for organizations with annual gross revenue of at least US$10,000 that use this project as part of revenue-generating activities.
  • Add a “Medium Organization Maintenance Fee” monthly sponsorship tier at $40 with this text:

    **Organizations with 20 to 100 employees**
    Required for organizations with annual gross revenue of at least US$10,000 that use this project as part of revenue-generating activities.
  • Add a “Large Organization Maintenance Fee” monthly sponsorship tier at $60 with this text:

    **Organizations with more than 100 employees**
    Required for organizations with annual gross revenue of at least US$10,000 that use this project as part of revenue-generating activities.

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 participates in the [Open Source Maintenance Fee](https://opensourcemaintenancefee.org).
The source code is freely available under the terms of the LICENSE. To
support sustainable maintenance, use of the project’s official releases
in revenue-generating activities requires adherence to the
[Open Source Maintenance Fee](./OSMFEULA.txt).
In short: if you use this project as part of generating revenue, the
Maintenance Fee applies. The fee directly supports the people maintaining
the project and helps ensure its long-term health.
To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/<YOURORGNAME>).

Add an OSMFEULA.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. Use the template EULA to get started.

Add the following to your .csproj to include the OSMFEULA.txt and require license acceptance:

<PropertyGroup>
<PackageLicenseFile>OSMFEULA.txt</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>
<ItemGroup>
<None Include="..\path\to\OSMFEULA.txt" Pack="true" PackagePath="OSMFEULA.txt"/>
</ItemGroup>

Build and publish your package.

Add the following to your package.json to include the OSMFEULA.txt and reference it as the license:

{
...
"license": "SEE LICENSE IN OSMFEULA.txt",
"files": ["../path/to/OSMFEULA.txt"]
}

Build and publish your package.