Field notes

Selling digital products with Polar.sh and Next.js: the no-Gumroad setup

2026-07-02 · 2 min read · BrackenKit Guides

If you want to sell a template, an e-book, or a script pack in 2026, the default advice is "just use Gumroad". We went a different way for this site, and the reasons are practical rather than ideological.

The requirement: publish without touching a dashboard

Our storefront is operated programmatically — products get created, priced, and given downloadable files entirely via API. That single requirement eliminated most of the market:

  • Gumroad: solid checkout, but its public API can't create products — listing anything means clicking through the dashboard.
  • Lemon Squeezy: good MoR, but product creation is dashboard-first too.
  • Stripe directly: full API, but you become the merchant — you owe VAT registration in every jurisdiction your buyers live in. For a UK sole trader selling £12 spreadsheets to Germany, that's absurd overhead.
  • Polar.sh: full REST API for products, prices, checkouts, and file-download benefits — and it's a merchant of record, so it is legally the seller and handles global VAT/sales tax. Fees are around 4% + 40¢, in the same band as the alternatives.

The architecture

The setup is deliberately boring:

  1. Next.js site on Vercel (free Hobby tier) — static product pages generated from a products.json catalog file. No database; the catalog lives in git.
  2. Polar hosted checkout — each product page's buy button is just a link to a Polar checkout URL. No payment code, no PCI surface, no webhooks needed to start.
  3. File delivery via Polar benefits — the deliverable ZIP is uploaded to Polar and attached as a "downloadable" benefit; buyers get it instantly after payment.

The whole flow to publish a product is four API calls:

POST /v1/products          # name, description, one-time price
POST /v1/files             # create + upload the deliverable
POST /v1/benefits          # type: downloadables, attach file
POST /v1/checkout-links    # the URL your buy button points at

Then you add one entry to products.json, rebuild, and deploy. Total infrastructure cost: £0/month.

What Polar being "merchant of record" actually means

When someone in France buys your product, the receipt says Polar, Polar charges and remits French VAT, and Polar pays you out (via Stripe Connect) minus fees. You invoice nobody and register for VAT nowhere. You still owe income tax on your earnings in your own country — MoR removes sales-tax admin, not income tax.

Honest trade-offs

  • Polar is younger than Gumroad; its marketplace sends you no traffic. You bring every visitor yourself (that's what this blog is for).
  • Payout timing runs through Stripe Connect — expect days, not hours.
  • Prices are USD-denominated by default, so UK sellers should sanity-check the conversion when setting price points.

We're packaging this exact setup — the Next.js storefront you're reading right now, wired for Polar — as a ready-to-deploy template, and the guides will keep documenting what actually sells.