payments · tutorial · comparison

Stripe vs LemonSqueezy vs Dodo: Pick Wrong, Pay for a Year

Three rails compared on fees, tax handling, payouts, and lock-in — plus the one-interface setup that keeps switching free. Table inside.

Diagram: decision tree routing buyer geography to Stripe or a merchant of record, one billing interface
Diagram: decision tree routing buyer geography to Stripe or a merchant of record, one billing interface · Photo: Boring

Picking billing feels permanent

Every tutorial frames the choice as a marriage.

Weeks integrating webhooks, portal flows and edge cases. Then the fees sting, or the tax letters arrive, or payouts lag. Switching means redoing it all.

So the decision paralyzes. Stripe's ecosystem dazzles but leaves global tax to you. Merchant-of-record options remove paperwork but take margin and payout speed.

The choice stalls while checkout sits unbuilt.

It stops being scary when the integration is one interface and the choice is one setting.

Compare freely. Commit lightly. Switch cheaply.

The three rails side by side

Axis Stripe LemonSqueezy Dodo
What it is A direct processor A merchant of record A merchant of record
Global tax (VAT, GST) You handle it They handle it They handle it
Fee shape Lower percentage, verify current Higher, tax inside Higher, coverage inside
Payout speed Fast, rolling Slower, verify current Slower, verify current
Subscriptions Best in class Mature Supported, verify depth
One-time and lifetime Supported Supported A native sweet spot
Webhook surface The full firehose Curated order events Curated payment events
India and regional methods Add-ons vary Varies A strong suit
Switching cost here A settings change A settings change A settings change
Payment rail decision tree
Route by buyer map; both roads end at the same four verbs.

Three things matter more than fee decimals.

Tax homework has no minimum. A single EU sale can trigger VAT obligations. A single Indian buyer can demand local methods. A merchant of record converts both from research projects into fee lines. Price your ignorance honestly.

Payout float is a cash-flow product. Rolling payouts fund next week's servers. Slower merchant-of-record payouts need a buffer month. Match payout shape to your burn.

Catalog shape picks the rail. Subscription-heavy with US buyers leans Stripe. Global lifetime deals lean Dodo. Global mixed catalogs lean LemonSqueezy. Optimize for your dominant shape. Keep the others wired for later.

Verify all pricing before you commit. Fee pages move, and this post's shapes outlast its numbers.

What to do

Compare on your numbers, not forum averages.

Take a realistic month. How many sales, at what price, with what share of buyers in the EU, India or elsewhere.

Stripe has the lowest headline fees but leaves VAT paperwork to you. LemonSqueezy and Dodo cost more and take the paperwork off you. Dodo adds regional methods.

The winner is the fees plus your paperwork hours, minus the global buyers you recover.

Integrate once against the interface. Never against the provider.

Checkout buttons, webhooks and the customer portal ask for the same four things: start a checkout, verify an event, record it once, open the portal. Each provider implements those four.

Adding another provider means writing one adapter, not rebuilding billing.

Switch by setting, rehearsed on staging first.

Change the active provider.

Run a test purchase.

Replay the webhook.

Confirm one order.

Keep both providers' signing secrets configured through the transition week, so late events from the old one still verify and dedupe.

One catalog, three providers, same books

Check Stripe LemonSqueezy Dodo
Test purchase drill One order, deduped One order, deduped One order, deduped
A refund removes access Expected Expected Expected
The paywall sees The same access switch The same access switch The same access switch
Monthly review Compare payouts to orders Compare payouts to orders Compare payouts to orders
Switch rehearsal Run on staging Run on staging Run on staging

The cost

Maintaining three adapters costs more than maintaining one. Budget some time per provider per year, plus drill time.

The kit does not reconcile payouts for you, so the monthly review is a manual habit.

Billing optionality compounds.

Fee changes become business mail.

Tax-season panics become setting changes.

New buyer geography never forces a rewrite.

Know this first

Three providers means three adapters to keep. The kit runs one at a time. It does not reconcile payouts.

Budget some time per provider.

Why BoringPush is the way to do this

Choose without fear.

Stripe, LemonSqueezy and Dodo all sit behind one interface. Compare on your own numbers. Switch with one setting.

Your checkout is written once.

FAQ

Which wins for a brand-new solo SaaS?

US-only subscriptions: Stripe, for ecosystem, payout speed and subscription depth. A global lifetime template: Dodo, for one-time-native checkout, regional methods and merchant-of-record taxes.

A global mixed catalog: LemonSqueezy, for merchant-of-record plus subscription maturity. If you do not know your buyers yet, start on Stripe, the fastest to a first dollar, and switch when data arrives.

How do fees compare at small volume?

Directionally, Stripe has the lowest headline percentage and the merchant-of-record options cost more with the tax service bundled in. Headline percentages lie by omission, since your VAT hours, accountant and payout float all cost money. Decide on paperwork tolerance and buyer coverage, not decimals, and verify the current fee pages.

Can I run two providers at once?

BoringPush runs one active provider at a time, selected by a setting. Splitting by product or region means building that routing yourself. A common split elsewhere is Stripe for US subscriptions and Dodo for global lifetime deals.

What is the hardest part of switching mid-flight?

Keeping both webhook secrets live for a week, migrating subscriptions (they cannot teleport, so grandfather them or migrate with the customer's consent), and comparing payouts across two dashboards for a month. One-time catalogs switch in an afternoon, and subscription books take a quarter.

Do I need an accountant with a merchant of record?

Yes, a smaller one. A merchant of record removes VAT and GST registration, not income tax, bookkeeping or entity questions. Budget a yearly accountant call regardless.

How often should I re-evaluate the choice?

Yearly, or when buyer geography shifts a lot or fee and tax rules change materially. A staging flip, a test purchase and a replay drill take an afternoon.

Keep reading

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading