Files
2026-09-29 14:47:51 +00:00

2.9 KiB

FediFund

Donations for fediverse instances. One-off gifts and monthly support in one place, a live funding goal on your instance, and supporter badges on your members' profiles.

FediFund is a drop-in replacement for Patron. Frontends that already show a Patron funding bar (Soapbox, Nicolium, Aeon) work with FediFund without any changes.

Status: early development. Nothing here is ready to take real money yet. Watch the repo or check back soon.

What it does

  • One-off and monthly donations from a single donate page. Donors choose an amount and whether it repeats.
  • Funding goals your frontend can display, like "$340 of $500 this month".
  • Supporter badges. Donors sign in with their fediverse account, so your frontend can mark them as supporters.
  • Fast and reliable totals. FediFund keeps its own ledger, updated by the payment processor as payments happen. Totals come from that ledger, so a busy instance never has to wait on the processor for a number.
  • Minimal data. The ledger stores amounts, dates, processor reference IDs, and the donor's public fediverse address. Names, emails, and card details stay with the payment processor and never reach your database.

How it fits with your instance

FediFund runs as its own small service. Your web server forwards /api/patron/ on your instance's domain to it, so frontends find it at the same address they already use.

https://your.instance/api/patron/v1/...  ->  FediFund
https://your.instance/...                ->  Pleroma

API

Legacy (Patron-compatible)

These match Patron's responses exactly, so existing frontends keep working.

Endpoint Returns
GET /api/patron/v1/instance Current funding total, supporter count, and goals
GET /api/patron/v1/accounts/:ap_id Whether an account is a supporter

Current

A richer API for frontends that want more (donation history, supporter tiers, one-off and monthly totals shown separately) is being designed. It will be documented here once it is stable.

Moving from Patron

A migration guide is planned. Here is the short version:

  1. Export Patron's users table (it links each fediverse account to its payment processor customer).
  2. Import it into FediFund.
  3. FediFund reads your existing monthly supporters from the payment processor and fills in its ledger.
  4. Point /api/patron/ at FediFund instead of Patron.

Your supporters don't have to do anything, and their monthly donations continue without interruption.

Development

Requirements: Node.js 20 or newer.

npm install
npm run dev

Then open http://localhost:3000.

Configuration, database setup, and payment processor setup will be documented as they are built.

License

To be decided.