GitPedia

Sponsorkit

πŸ’– Toolkit for generating sponsors images πŸ˜„

From antfu-collectiveΒ·Updated June 23, 2026Β·View on GitHubΒ·

Toolkit for fetching sponsors info and generating sponsors images. The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2022. Key topics include: github-sponsors, sponsors.

Latest release: v17.1.1

SponsorKit

NPM version

Toolkit for fetching sponsors info and generating sponsors images.

Supports:

Usage

Create .env file with:

ini
; GitHub provider. ; Token requires the `read:user` and `read:org` scopes. SPONSORKIT_GITHUB_TOKEN= SPONSORKIT_GITHUB_LOGIN= ; Optional data mode: ; - sponsors: people sponsoring you (default) ; - sponsees: people you have sponsored, including past sponsorships SPONSORKIT_MODE=sponsors ; Patreon provider. ; Create v2 API key at https://www.patreon.com/portal/registration/register-clients ; and use the "Creator’s Access Token". SPONSORKIT_PATREON_TOKEN= ; OpenCollective provider. ; Create an API key at https://opencollective.com/applications SPONSORKIT_OPENCOLLECTIVE_KEY= ; and provide the ID, slug or GitHub handle of your account. SPONSORKIT_OPENCOLLECTIVE_ID= ; or SPONSORKIT_OPENCOLLECTIVE_SLUG= ; or SPONSORKIT_OPENCOLLECTIVE_GH_HANDLE= ; If it is a personal account, set it to `person`. Otherwise not set or set to `collective` SPONSORKIT_OPENCOLLECTIVE_TYPE= ; Afdian provider. ; Get user_id at https://afdian.com/dashboard/dev SPONSORKIT_AFDIAN_USER_ID= ; Create token at https://afdian.com/dashboard/dev SPONSORKIT_AFDIAN_TOKEN= ; Polar provider. ; Get your token at https://polar.sh/settings SPONSORKIT_POLAR_TOKEN= ; The name of the organization to fetch sponsorships from. SPONSORKIT_POLAR_ORGANIZATION= ; Liberapay provider. ; The name of the profile. SPONSORKIT_LIBERAPAY_LOGIN=

Only one provider is required to be configured.

Run:

base
npx sponsorkit

Example Setup | GitHub Actions Setup | Generated SVG

Configurations

Create sponsorkit.config.js file with:

ts
import { defineConfig, tierPresets } from 'sponsorkit' export default defineConfig({ // Data mode: // - sponsors: people sponsoring you (default) // - sponsees: people you have sponsored, including past sponsorships mode: 'sponsors', // Providers configs github: { login: 'antfu', type: 'user', }, opencollective: { // ... }, patreon: { // ... }, afdian: { // ... }, polar: { // ... }, liberapay: { // ... }, // Rendering configs width: 800, renderer: 'tiers', // or 'circles' formats: ['json', 'svg', 'png', 'webp'], tiers: [ // Past sponsors, currently only supports GitHub { title: 'Past Sponsors', monthlyDollars: -1, preset: tierPresets.xs, }, // Default tier { title: 'Backers', preset: tierPresets.base, }, { title: 'Sponsors', monthlyDollars: 10, preset: tierPresets.medium, }, { title: 'Silver Sponsors', monthlyDollars: 50, preset: tierPresets.large, }, { title: 'Gold Sponsors', monthlyDollars: 100, preset: tierPresets.xl, }, ], })

Also check the example.

Programmatic Utilities

You can also use SponsorKit programmatically:

ts
import { fetchSponsors } from 'sponsorkit' const sponsors = await fetchSponsors({ github: { token, login, }, // ... })

Check the type definition or source code for more utils available.

Renderers

We provide two renderers built-in:

  • tiers: Render sponsors in tiers.
  • circles: Render sponsors in packed circles.

Tiers Renderer

ts
export default defineConfig({ renderer: 'tiers', // ... })
<p align="center"> <a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg"> <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg' alt="Sponsors"/> </a> </p>

Circles Renderer

ts
export default defineConfig({ renderer: 'circles', // ... })
<p align="center"> <a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.circles.svg"> <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.circles.svg' alt="Sponsors"/> </a> </p>

Multiple Renders

We also support rendering multiple images at once with different configurations, via renders field:

ts
import { defineConfig, tierPresets } from 'sponsorkit' export default defineConfig({ // Providers configs github: { /* ... */ }, // Default configs width: 800, tiers: [ /* ... */ ], // Define multiple renders, each will inherit the top-level configs renders: [ { name: 'sponsors.tiers', formats: ['svg'], }, { name: 'sponsors.wide', width: 1200, }, { name: 'sponsors.circles', renderer: 'circles', width: 600, }, // ... ], })

License

MIT License Β© 2022 Anthony Fu

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub β†’

This article is auto-generated from antfu-collective/sponsorkit via the GitHub API.Last fetched: 6/28/2026