Repo access cost calculator
Pick two ways of selling access to a private GitHub repository, enter your price and volume, and see what each costs you per month and per year, whether it takes sellers from your country, and who files the sales tax. Every fee comes from the provider's own pricing page, with the date it was read.
At a glance
A US seller at $99 a sale and 20 sales a month, with 35% international buyers, 5% refunds and 1.5% disputes, using a free or built-in delivery tool. Fees read 2026-09-24.
| Payment provider | Monthly fees at $99 × 20 | Sales tax |
|---|---|---|
| Stripe | $85 | You file it |
| Dodo Payments | $108* | Dodo Payments files it |
| Paddle | $115 | Paddle files it |
| Lemon Squeezy | $124 | Lemon Squeezy files it |
| Polar | $125 (Pro plan) | Polar files it |
| Gumroad | $261* | Gumroad files it |
* Not counted: a fee this provider does not publish as a single figure.
Paid delivery tools add $29 to $129 once, or up to $79 a month.
Polar
- Available in United States
- Yes Read 2026-09-13
- Platform and processing
- $83 Polar fees + $10 intl + $5 disputes + $7 payouts + $20 plan Read 2026-09-24
- Tooling and hosting
- Delivery built in
- Monthly cost
- $125 in Polar fees and Pro plan
- One-time cost
- $0
- Year 1
- $1,504
- Year 2
- $1,504
- Tax work
- Polar's
- GitHub delivery
- Built in: collaborator invite, organization repos only
Stripe + RepoAccess Core
- Available in United States
- Yes Read 2026-09-13
- Platform and processing
- $63 Stripe fees + $10 intl + $7 FX + $5 disputes Read 2026-09-24
- Tooling and hosting
- Free tool, $0 hosting (Cloudflare Free) Read 2026-09-24
- Monthly cost
- $85 in Stripe fees
- One-time cost
- $0
- Year 1
- $1,023
- Year 2
- $1,023
- Tax work
- Yours
- GitHub delivery
- RepoAccess Core
What you keep
- Polar: $21,068 in year 1, $21,068 in year 2
- Stripe + RepoAccess Core: $21,549 in year 1, $21,549 in year 2
Stripe + RepoAccess Core leaves you $481 more a year.
Stripe + RepoAccess Core leaves the sales tax to you, so its figure is before any VAT or sales tax you owe on these sales. Polar files it for you.
Sales minus refunds minus the costs above, before income tax.
Fees are read from each provider's own pages; the date sits beside each figure. Payouts count as one a month to a bank in your country, and currency conversion as applying to international cards. A fee a provider does not publish as a single figure is listed under Not counted rather than guessed.
Frequently asked questions
What does it cost to sell access to a private GitHub repo?
At $99 a sale and 20 sales a month, payment fees run from $85 a month with Stripe to $261 with Gumroad. Most delivery tools are free or built in; paid ones cost $29 to $129 once, or up to $79 a month.
Which payment providers handle sales tax for me?
Dodo Payments, Paddle, Lemon Squeezy, Polar and Gumroad act as merchant of record: they collect and file sales tax and VAT for you. With Stripe, the tax is yours to file.
Is there a free way to sell repo access?
The delivery side can be free: RepoAccess Core, Honorbox, Lemonrepo, Zapier (Free plan) and Make (Free plan). You still pay the payment provider, $85 a month in Stripe fees in the example above.
What if Stripe does not take sellers from my country?
Stripe takes sellers from 51 of the 239 countries in the calculator. Of the rest, Dodo Payments covers 129, Paddle 172, Lemon Squeezy 175, Polar 70 and Gumroad 185. Pick your country above to see which options are open to you.
How much does Polar take per sale?
Polar has 4 plans: Starter, 5% + 50¢ a sale; Pro, 3.8% + 40¢ a sale, $20 a month; Growth, 3.6% + 35¢ a sale, $100 a month; Scale, 3.4% + 30¢ a sale, $400 a month. On every plan it adds 1.5% on international cards and $15 per dispute, keeps its fee on a refund, and payouts cost $2 a month plus 0.25% + 25¢ per payout. Fees read 2026-09-24.
How current are these numbers?
Every fee was read from the provider's own pricing page; the latest check was 2026-09-24, and each figure in the calculator links to its source. A fee a provider does not publish as one number is listed under Not counted instead of guessed.