HonorBox

Sell code without a marketplace: the direct Stripe + GitHub route

You built something worth paying for: a boilerplate, a CLI tool, a course repo, a plugin, an agent pack. The default advice is to list it on a marketplace and hand over a cut of every sale plus the buyer relationship. This guide covers the direct route instead: checkout on your own Stripe account, delivery through GitHub, nobody in between. Disclosure up front: we build HonorBox, a free engine that automates exactly this pipeline, and this store runs on it. The setup below works with or without our tool.

What a marketplace charges for

A marketplace does two jobs: it processes the sale, and it finds buyers. The finding is the expensive part. Gumroad's own fee page (checked July 19, 2026) prices it cleanly: sales from their Discover marketplace cost 30%, processing included, while sales from your own traffic cost 10% + 50¢ with card processing (2.9% + 30¢) on top. Lemon Squeezy (pricing) charges 5% + 50¢ as a merchant of record. Selling direct, the whole fee stack is Stripe's processing rate (pricing); for US domestic cards that's 2.9% + 30¢, with no monthly fee and no platform percentage.

The catch, stated before the pitch: most code sales come from your own traffic anyway, your README, your blog, your users. If you're paying 10-30% on buyers you brought yourself, the marketplace is charging distribution prices for processing work. Full per-sale math: Lemon Squeezy vs Gumroad vs DIY.

The three jobs you take back

Going direct means you own checkout, delivery, and tax. The first two turn out to be small. The third is real work you should size before deciding; more on it below.

A Payment Link is a hosted checkout page you create in the Stripe dashboard in a few minutes: no code, no server. Two settings matter for selling code:

The complete Payment Links guide covers receipts, refunds, and the launch checklist.

Delivery: a private GitHub repo

Put the product in a private repository. Delivery is a read-only collaborator invite to the buyer's GitHub account. GitHub's Free plan includes unlimited private repositories with unlimited collaborators (their plans doc, checked July 19, 2026), so the delivery channel costs nothing. What the invite gives you over a download link:

The costs are equally concrete: every buyer needs a GitHub account (the right audience for code, the wrong one for lay-reader ebooks), usernames get typo'd at checkout, and GitHub caps repo invitations at roughly 50 per repo per 24 hours. The practical GitHub delivery guide covers validation, invite limits, and token discipline.

The glue between paid and delivered

After checkout, Stripe has your money and a checkout.session object carrying the buyer's username. Something has to read it and send the invite:

  1. By hand. Stripe emails you per sale; you click invite. Fine for the first sales, fragile the first weekend you're away.
  2. Webhook + server. Instant delivery, and you now operate an endpoint, its TLS, and its retries.
  3. A scheduled poll from CI (the section where we sell you something: this is what HonorBox does). A GitHub Action runs every few minutes, lists recent paid sessions, and invites each buyer. The engine is MIT, 844 dependency-free lines of Node you can read before trusting it. It also builds the storefront: a static site on GitHub Pages with your products, checkout buttons, and this same guide layout. Delivery lands in minutes rather than seconds; an opt-in webhook mode gets it under a minute if you want it.

The running costs, added up

When a marketplace earns its cut