# Affiliates

> Every paying seat gives back — $10 a month to the one person or open source project the person in it chooses, up to $120.

<Callout title="In brief">

Every paying seat can give back. Each person on ExtraOrbital chooses one beneficiary: the person who introduced them, or an open source project. While at least one of your teams pays for your seat, we give $10 a month to your beneficiary, up to $120. Being on five paid teams still means $10 a month. Your teammates each choose their own. Your choice is final: one person or one project, never both.

</Callout>

The program in one page, for people: [Giving back](/giving-back).

## Choosing your beneficiary

Your beneficiary is set by whichever reaches your account first:

- **A referral link.** Opening `https://extraorbital.dev/r/<slug>` sets a first-party cookie for 90 days, and the account that browser creates has `<slug>` as its beneficiary. A browser that already carries one keeps it: first touch wins. `?ref=<slug>` works on any page of the site, and `https://extraorbital.dev/r/<slug>?to=https://slices.sh` remembers the slug and opens slices.sh.
- **`--❤️` on your machine.** `npx extraorbital --❤️ <slug-or-org/repo>` stores the slug on the machine and passes it to your account, at once if the machine is linked, otherwise when it is.
- **The dashboard.** **Account → Affiliate** shows your beneficiary, and lets you choose one if you have none.

Once your account has a beneficiary, it never changes, and nothing adds a second: an account that supports a person cannot also support a project, and the reverse. `--❤️` and the dashboard both answer *You already support X; each account supports one person or project, once.* Nobody can be their own beneficiary.

## Thanking people who introduce us to our users

Reserve a slug under **Account → Affiliate** (or `/affiliate`). It is yours for good and cannot be renamed. That page gives you your links, the CLI line, README and deploy-button snippets, prompts for coding agents and ready-made posts, and shows the people who chose you and what each one's seat has given.

## Thanking the open source community

Anyone can support a project from their terminal:

```bash
npx extraorbital --❤️ org/repo
```

The slug is stored on the machine in `~/.extraorbital/affiliate.json` and passed to the account the machine is linked to — at once if it is linked already, otherwise when it is (`extraorbital login`). An account keeps the first slug that reaches it, from a link or from any machine; a later one changes nothing, and `--❤️` says so. `--love` is the same flag for terminals that make an emoji hard to type.

`--❤️` takes three shapes, stored in one spelling each:

| You type | Stored as |
| --- | --- |
| `severin`, `Severin` | `severin` — a reserved slug |
| `https://github.com/Org/Repo/tree/main`, `git@github.com:org/repo.git`, `org/repo` | `org/repo` |
| `https://gitlab.com/group/project` (or Codeberg, Bitbucket) | `gitlab.com/group/project` |
| `https://www.example.dev/docs` | `example.dev` |

A repository or a domain nobody has claimed yet is a **cause**. People choose it all the same and it is given $10 for each month their seat is paid; its maintainers claim it later and receive what it was given. A cause cannot be reserved, only claimed by showing it is yours, so nobody but its maintainers can collect for it.

## Claiming a project you maintain

Under **Account → Affiliate**, **Claim a project** takes a GitHub repository (`org/repo` or its URL) or a domain and gives you a one-time token, valid for seven days. Publish it where only the project's maintainers can write, then press **Verify**:

| Project | Publish the token as |
| --- | --- |
| GitHub repository | The file `.github/extraorbital-affiliate` on the default branch, the token on a line of its own. The repository must be public. |
| Domain | A TXT record on `_extraorbital.<domain>`, or the file `https://<domain>/.well-known/extraorbital-affiliate` served over HTTPS without a redirect. |

GitHub and DNS can take a few minutes to show a change; verify again after a moment. Once verified, the file or record can go.

A verified claim is yours for good, like a reserved slug: it is never reassigned, and the first maintainer to prove it is the only one. Everyone who already chose the project, and everything it was given, now shows on your page. You keep one reserved slug and may claim as many projects as you maintain. Claiming a project is about receiving: it does not change whom your own seat supports.

Repositories on GitLab, Codeberg or Bitbucket, and anything these checks cannot prove, are claimed by writing to hello@extraorbital.dev from an address the project lists; we check it by hand.

## The rules

- **Per person, not per team.** Each person has at most one beneficiary. Teammates each choose their own; a team has none.
- **What counts.** A calendar month in which at least one team you are a member of pays its subscription — each paid month of a subscription is a month of seats. Top-ups, monthly usage invoices, prorations from seat changes and free invoices do not count.
- **$10 a month, up to $120.** One credit per person per calendar month, however many paid teams they are on, and twelve at most. When no team pays for your seat any more, the credits stop; if one does again, they resume until the twelfth.
- **No self-referral.** Nobody is their own beneficiary, and a cause claimed by the person who chose it stops earning from them.
- **The ledger.** Every credit is a row appended to a ledger when the payment arrives, once per invoice and person. Rows are never changed or removed. Payouts are made by hand from it, so the dashboard shows amounts as pending until then.

---

More for agents: [Sitemap](https://extraorbital.dev/sitemap.md) · [llms.txt](https://extraorbital.dev/llms.txt) · [agents.md](https://extraorbital.dev/agents.md)
