The Payments Decision
Enter hub password to continue.
That's not right. Try again.
What To Use Instead of Stripe
SocialMapped payments · researched 2026-07-20
1. What we're actually deciding
SocialMapped needs to take money for two things: the $29 one-time report (the immediate need) and, later, the $299 / $599 / $1,199 monthly management subscriptions. The worker already has a Stripe integration built and hardened (checkout, webhook, report generation on the queue), but the Stripe secrets were never set, so nothing is wired to a live account yet. That means switching providers now costs almost nothing: only the thin checkout-and-webhook layer changes, and all the queue plumbing, duplicate-submission protection, and report delivery stay exactly as they are.
2. The concept that matters: merchant of record
With a plain payment processor (Stripe, Square, PayPal), you are the legal seller. For digital products sold across the US, that makes sales tax your problem: tracking which states tax digital goods, registering when you cross their thresholds, filing returns. For a solo business, it's a real ongoing burden that has nothing to do with helping customers.
A merchant of record (MoR) legally resells your product: the customer buys from them, they handle every sales tax, VAT, and compliance obligation everywhere, and they pay you out. The fee is roughly 1 to 2 percentage points higher than plain Stripe. On a $29 report, that's about 40 to 80 cents per sale to never think about tax compliance at all. For this business, that trade is worth it.
3. The options, priced on our actual product
| Option | Fee on a $29 report | Handles sales tax? | Subscriptions? | Read on it (July 2026) |
|---|---|---|---|---|
| Polar | ~$1.56 (4% + 40¢) | Yes (MoR) | Yes | Cheapest MoR, built for solo founders and digital products, best developer tooling of the group. The consistent "right default for indie" pick this year. |
| Paddle | ~$1.95 (5% + 50¢) | Yes (MoR) | Yes | The mature, established MoR with the deepest global tax coverage. Geared toward bigger SaaS; volume discounts only matter at scale we don't have yet. |
| Stripe Managed Payments | ~5% range | Yes (MoR) | Yes | What Lemon Squeezy became after Stripe bought it in 2024. In public preview since February 2026. Solid, but it's still a Stripe account, so it doesn't help if the goal is to avoid Stripe itself. |
| Plain Stripe | ~$1.14 (2.9% + 30¢) | No, you do | Yes | Cheapest per sale and already built in our worker, but the sales tax burden lands on Annette. Fine at tiny volume, a real chore if the product works. |
| PayPal | ~$1.50 (3.49% + 49¢) | No, you do | Yes | Familiar checkout button for buyers, clunkier developer experience, same tax burden as Stripe with fewer tools. |
| Gumroad | ~$2.90+ (10%) | Yes (MoR) | Yes | Simplest possible setup, but the fee is triple Polar's for the same tax handling. Wrong fit once you have your own site and checkout flow, which we do. |
4. The recommendation: Polar
Polar wins on every axis that matters here. Lowest merchant-of-record fee (4% + 40 cents), designed for exactly this shape of business (solo founder, digital product now, subscriptions later), a clean API that works fine from a Cloudflare Worker, and a sandbox environment where the whole flow can be tested with fake money before launch. The management tiers can run on it as subscriptions when that day comes, so one provider covers the whole business.
The honest counterargument: plain Stripe is about 40 cents cheaper per report and the integration is already written. If SocialMapped never passes a handful of sales a month, the tax exposure stays negligible and Stripe would have been fine. But the whole point of the funnel is for it to work, and the moment it does, MoR is the version where nobody spends an afternoon learning what an economic nexus threshold is.
5. What the switch touches in the code
- Replaced:
worker/src/stripe.ts(checkout session creation, webhook signature check, session lookup) gets a Polar equivalent. - Unchanged: report generation on the Cloudflare Queue, the pre-allocated report URL, the idempotency guard against duplicate submissions, answers storage, the email delivery, and every pipeline invariant. The payment provider only decides when a paid job gets enqueued, and that seam was hardened on 2026-07-20 specifically so the provider layer stays thin.
- Launch gate: the beta-to-paid transition (feedback box, "free during beta" copy sitewide) is a separate decision and still open.