Guide

How to Set Up FUNDING.yml for Your GitHub Repository

How to add a FUNDING.yml file to a GitHub repository so visitors see a Sponsor button with GitHub Sponsors, Open Collective, Ko-fi, Tidelift, Polar, Buy Me a Coffee, or custom funding links.

Last reviewed: 2026-06-21 3 min read

Contents

A FUNDING.yml file tells GitHub which funding links to show behind the Sponsor button on your repository. Put the file in .github/FUNDING.yml on the default branch, add the funding platforms you use, and GitHub will display the Sponsor button for visitors with access to the repository.

Where the file goes

Create this file:

.github/FUNDING.yml

It must be on the default branch of the repository.

If you maintain many repositories, you can also use a default community health file in a special .github repository for your user or organization. Use a repo-specific FUNDING.yml when a project needs different funding links.

Minimal example

github: your-github-username
open_collective: your-collective-name
ko_fi: your-kofi-username
custom: ["https://example.com/sponsor"]

Keep the file short. Use one primary funding option and one or two secondary options.

Supported keys

Use the keys GitHub supports in FUNDING.yml.

PlatformKey example
GitHub Sponsorsgithub: USERNAME or github: [USER1, USER2]
Open Collectiveopen_collective: USERNAME
Ko-fiko_fi: USERNAME
Liberapayliberapay: USERNAME
Patreonpatreon: USERNAME
IssueHuntissuehunt: USERNAME
LFX Mentorshipcommunity_bridge: PROJECT-NAME
Tidelifttidelift: npm/package-name
Polarpolar: USERNAME
Buy Me a Coffeebuy_me_a_coffee: USERNAME
thanks.devthanks_dev: u/gh/USERNAME
Custom linkcustom: LINK1 or custom: [LINK1, LINK2]

Use the current GitHub documentation as the source of truth. Supported keys can change.

Tidelift syntax

Tidelift requires package coordinates:

tidelift: npm/my-package

Common platform names include:

npm
pypi
rubygems
maven
packagist
nuget

GitHub supports one custom link or an array of custom links.

custom: "https://example.com/sponsor"

or:

custom: ["https://example.com/sponsor", "https://example.com/support"]

If the custom URL includes a colon, quote the URL.

For a solo maintainer:

github: maintainer-name
ko_fi: maintainer-name
custom: ["https://project.example.com/sponsor"]

For a team project:

open_collective: project-name
github: [maintainer-one, maintainer-two]
custom: ["https://project.example.com/funding"]

For a package with Tidelift:

github: maintainer-name
tidelift: pypi/package-name
custom: ["https://project.example.com/support"]

How to enable the Sponsor button

After adding the file, check the repository settings:

  1. Go to the repository on GitHub.
  2. Open Settings.
  3. Find the Sponsorships feature.
  4. Set up or override funding links.
  5. Commit the FUNDING.yml file to the default branch.
  6. Check that the Sponsor button appears.

Common mistakes

  • Putting the file in the repository root instead of .github/FUNDING.yml.
  • Leaving the file on a feature branch.
  • Using an unsupported key name.
  • Linking to platforms that are not configured yet.
  • Adding too many options.
  • Forgetting to update the README funding note.

FAQ

Does FUNDING.yml collect money directly?

No. It only tells GitHub which funding links to show. Payments happen on the linked platforms.

Can I add more than one GitHub Sponsors account?

Yes. GitHub supports multiple sponsored developers for the github key.

Can I use a custom funding URL?

Yes. Use custom for one custom URL or an array of custom URLs.

Why is the Sponsor button not showing?

Check that the file is named .github/FUNDING.yml, that it is on the default branch, and that sponsorships are enabled in the repository settings.

Not sure which links to include? Try the Sustainability Finder, then add the recommended platforms to your FUNDING.yml file.

Sources checked