Stripe vs Lemon Squeezy vs Paddle: Indie Hackers
Stripe vs Lemon Squeezy vs Paddle: SaaS Billing for Indie Hackers 2026
Every SaaS needs billing. In 2026, indie hackers have three credible options: Stripe (the industry standard), Lemon Squeezy (the indie-friendly Merchant of Record), and Paddle (the enterprise-grade MoR that's gotten accessible to small teams). The right choice depends on one central question: do you want to handle tax compliance yourself, or pay someone else to do it?
This guide breaks down fees, features, and integration complexity at every revenue level — and tells you exactly when each platform is the right call.
TL;DR
Stripe for most SaaS: best developer experience, most boilerplate integrations, strongest API, handles tax via Stripe Tax ($0.50/transaction or 0.5% automated). Lemon Squeezy for indie hackers who want zero tax headaches: they're the Merchant of Record, collecting and remitting sales tax/VAT globally. Paddle for teams scaling to $50K+ MRR who want MoR benefits at better rates than Lemon Squeezy at scale. The MoR advantage compounds as you sell internationally — the more countries you sell to, the more valuable MoR becomes.
Key Takeaways
- Stripe take rate: 2.9% + $0.30 (standard); tax is extra via Stripe Tax
- Lemon Squeezy take rate: 5% + $0.50 per transaction; includes full MoR tax compliance
- Paddle take rate: 5% + $0.50 (Paddle Billing); includes MoR tax compliance
- Merchant of Record: Lemon Squeezy and Paddle sell on your behalf — they handle all global tax registration, collection, and remittance
- Stripe Tax: Stripe can automate tax collection and reporting at 0.5% per transaction, but you still need to register in each jurisdiction or use a tax registration service
- Boilerplate support: Stripe is in 90%+ of SaaS boilerplates; Lemon Squeezy in ~30%; Paddle growing
- Break-even: MoR fees vs Stripe + tax service: MoR is cheaper once you hit 3+ tax jurisdictions you'd need to register in
The Merchant of Record Explained
The most important concept in this comparison:
Stripe: You are the Merchant of Record. You sell your product. You collect revenue. Tax compliance is your responsibility — register in each jurisdiction, collect correct rates, file returns.
Lemon Squeezy / Paddle: They are the Merchant of Record. They sell your product on your behalf. They handle all tax registration, collection, and remittance globally. You receive revenue minus their fee.
For a US-only SaaS selling to US customers: the MoR difference is minimal. You only need to register in states where you have nexus.
For a SaaS selling globally: the MoR difference is enormous. You'd need to register for VAT in 27 EU countries, GST in Australia, consumption tax in Japan, etc. Each registration costs $500–2,000+ via a tax advisor. Each country requires quarterly or annual filing. Lemon Squeezy or Paddle handles all of this for their fee.
Fee Comparison at Every Revenue Level
$1,000 MRR (Early Stage)
| Platform | Monthly Revenue | Processing Fee | MoR Tax Value | Net |
|---|---|---|---|---|
| Stripe | $1,000 | $29 + $3 (2.9% + $0.30 avg) | Self-managed | ~$968/mo |
| Stripe + Stripe Tax | $1,000 | $34 (2.9% + Stripe Tax) | Automated (you still register) | ~$966/mo |
| Lemon Squeezy | $1,000 | $55 (5% + $0.50 avg) | Full MoR | ~$945/mo |
| Paddle | $1,000 | $55 (5% + $0.50 avg) | Full MoR | ~$945/mo |
At $1K MRR, the cost difference is $27/month between Stripe and Lemon Squeezy. If you're selling to 3+ countries, that $27 is well worth avoiding manual VAT registration.
$10,000 MRR (Growing)
| Platform | Monthly Fee | Annual Fee | Annual MoR Savings |
|---|---|---|---|
| Stripe | $290 | $3,480 | $0 (DIY tax) |
| Stripe + full tax service | $340–500 | $4,080–6,000 | — |
| Lemon Squeezy | $550 | $6,600 | Full global compliance |
| Paddle | $550 | $6,600 | Full global compliance |
At $10K MRR, you're paying ~$2,500/year more for MoR. A tax advisor for EU VAT registration alone costs $1,500–3,000 as a one-time fee, plus ongoing compliance. The MoR premium starts paying for itself.
$100,000 MRR (Scaling)
| Platform | Monthly Fee | Annual Fee |
|---|---|---|
| Stripe | $2,900 | $34,800 |
| Stripe + Avalara (enterprise tax) | ~$4,000 | ~$48,000 |
| Lemon Squeezy | $5,500 | $66,000 |
| Paddle | ~$4,500 (volume discount) | ~$54,000 |
At $100K MRR, Lemon Squeezy's fee becomes significant. Paddle offers volume discounts at this level. Many founders switch from Lemon Squeezy to Stripe + Avalara at this scale — the tax complexity is manageable by a finance hire, and Stripe's lower take rate saves ~$1,500/month.
Stripe: The Industry Standard
Strengths
Best developer experience: Stripe's API is the gold standard for payments APIs. The documentation is comprehensive, the SDK is well-maintained, and the Stripe CLI makes local webhook testing seamless.
# Stripe CLI: forward webhooks to local server
stripe listen --forward-to localhost:3000/api/stripe/webhook
# Trigger specific events for testing
stripe trigger checkout.session.completed
stripe trigger customer.subscription.updated
Most boilerplate support: Every major SaaS boilerplate — ShipFast, MakerKit, Supastarter, T3 Stack, Open SaaS — ships with Stripe pre-integrated. You don't configure billing from scratch.
Full billing primitives: subscriptions, usage-based billing, per-seat pricing, metered billing, customer portal, proration handling, trial periods, discount codes — all first-party features.
Stripe's Customer Portal
// Create a Stripe Customer Portal session
const session = await stripe.billingPortal.sessions.create({
customer: stripeCustomerId,
return_url: `${process.env.NEXTAUTH_URL}/dashboard`,
});
redirect(session.url);
Users can upgrade, downgrade, cancel, update payment methods, and download invoices — all without building a billing UI. This is Stripe's most underrated SaaS feature.
Stripe Limitations for Indie Hackers
- Tax compliance is your responsibility (Stripe Tax automates collection but not registration/filing)
- International expansion requires registering in each jurisdiction
- Stripe radar (fraud protection) can incorrectly flag legitimate indie hacker customers
- High-risk categories (digital goods in some regions) can result in account holds
Lemon Squeezy: Built for Indie Hackers
Lemon Squeezy launched as a Merchant of Record specifically targeting indie developers who found Stripe's tax complexity overwhelming.
What Lemon Squeezy Handles For You
- Global tax registration (EU VAT, UK VAT, Australian GST, etc.)
- Correct tax rate calculation per transaction
- Tax collection from customers
- Tax remittance to tax authorities
- VAT invoices for B2B customers
- US sales tax nexus management
You sell your product. Lemon Squeezy handles the government paperwork.
Integration
// Lemon Squeezy: create a checkout
import { createCheckout } from "@lemonsqueezy/lemonsqueezy.js";
const checkout = await createCheckout(storeId, variantId, {
checkoutData: {
email: userEmail,
custom: {
user_id: userId, // Pass through user data for webhook
},
},
checkoutOptions: {
dark: true,
logo: false,
},
productOptions: {
redirectUrl: `${siteUrl}/dashboard?upgraded=true`,
},
});
// Redirect to: checkout.data.attributes.url
Lemon Squeezy Limitations
5% + $0.50 per transaction: At scale, this is expensive. $50K MRR = $2,750/month in fees vs $1,450 for Stripe. The gap compounds.
Less flexible billing: Lemon Squeezy's subscription model is less flexible than Stripe's. Usage-based billing, metered pricing, and custom billing cycles are limited.
No Customer Portal customization: Lemon Squeezy's customer portal is functional but less customizable than Stripe's.
Customer service through Lemon Squeezy: When a customer has a payment dispute, Lemon Squeezy handles it (as the MoR) — but you lose direct control over the customer relationship.
Paddle: Enterprise MoR, Now Accessible
Paddle (specifically Paddle Billing — their 2023 product relaunch) targets teams that want MoR benefits with more flexibility than Lemon Squeezy and better tooling for growing businesses.
Paddle vs Lemon Squeezy
| Feature | Paddle | Lemon Squeezy |
|---|---|---|
| Business model | MoR | MoR |
| Base fee | 5% + $0.50 | 5% + $0.50 |
| Volume discounts | ✓ (available) | Limited |
| Custom billing | More flexible | Limited |
| API quality | Strong | Good |
| Catalog management | Better | Basic |
| Developer tools | Paddle CLI, sandbox | Standard |
| Enterprise support | ✓ | Limited |
| Indie hacker UX | Less optimized | More optimized |
Paddle's API is more capable than Lemon Squeezy for complex billing scenarios. Lemon Squeezy is friendlier to set up for simple subscription SaaS.
Paddle Integration
// Paddle: initialize with customer data
import { initializePaddle } from "@paddle/paddle-js";
const paddle = await initializePaddle({
environment: "sandbox",
token: process.env.PADDLE_CLIENT_TOKEN!,
});
// Open checkout overlay
paddle.Checkout.open({
items: [{ priceId: "pri_xxx", quantity: 1 }],
customer: { email: userEmail },
customData: { userId },
});
Paddle Webhooks
// Verify and process Paddle webhook
import { Paddle } from "@paddle/paddle-node-sdk";
const paddle = new Paddle(process.env.PADDLE_API_KEY!);
export async function POST(req: Request) {
const signature = req.headers.get("paddle-signature");
const body = await req.text();
const event = paddle.webhooks.unmarshal(
body,
process.env.PADDLE_WEBHOOK_SECRET!,
signature!
);
switch (event.eventType) {
case "subscription.activated":
await activateSubscription(event.data);
break;
case "subscription.canceled":
await cancelSubscription(event.data);
break;
}
}
Boilerplate Support Matrix
| Boilerplate | Stripe | Lemon Squeezy | Paddle |
|---|---|---|---|
| ShipFast | ✓ | ✗ | ✗ |
| MakerKit | ✓ | ✓ | ✓ (Billing v2) |
| Supastarter | ✓ | ✓ | ✗ |
| T3 Stack | ✓ | ✗ | ✗ |
| Open SaaS | ✓ | ✓ (Polar.sh) | ✗ |
| Svelteship | ✓ | ✓ | ✗ |
| NuxtShip | ✓ | ✓ | ✗ |
Stripe's support is universal. Lemon Squeezy has become the second standard in boilerplates focused on indie hackers. Paddle is available in MakerKit (their billing abstraction supports all three).
MakerKit's billing abstraction is worth noting:
// MakerKit: switch billing providers with one config change
// billing.config.ts
export const billingConfig = {
provider: 'stripe', // switch to 'lemon-squeezy' or 'paddle'
products: [
{
id: 'pro',
name: 'Pro Plan',
prices: [
{ id: 'monthly', interval: 'month', amount: 2900 },
{ id: 'annual', interval: 'year', amount: 29000 },
],
},
],
};
Decision Framework
Choose Stripe if:
- US-only sales, or <3 international tax jurisdictions
- You want maximum billing flexibility (usage-based, metered, per-seat)
- Your boilerplate already includes Stripe (most do)
- You can use Stripe Tax to automate collection and hire an accountant for filing
- Revenue >$50K MRR where Stripe's lower take rate saves significant money
Choose Lemon Squeezy if:
- You're selling globally from day one and want zero tax complexity
- You're a solo indie hacker without a finance team or accountant
- <$30K MRR where the 5% fee is worth the operational simplicity
- You want customer-friendly checkout (Lemon Squeezy has a polished checkout UX)
- Your boilerplate supports it (Supastarter, MakerKit, NuxtShip)
Choose Paddle if:
- $30K–$100K+ MRR where you want MoR benefits and better volume pricing
- More complex billing requirements than Lemon Squeezy supports
- Enterprise customers who expect Paddle invoicing
- You're building a larger team and want enterprise-grade billing infrastructure
- MakerKit is your boilerplate (Paddle is fully supported)
The Tax Compliance Reality
If you're a solo indie hacker in the US selling a $20/month SaaS to US customers: use Stripe. You have one or two states to worry about, Stripe Tax handles collection, and your accountant handles the rest.
If you launch your SaaS and it goes viral in Germany, France, and Australia simultaneously: you suddenly need EU VAT registration (27 countries), UK VAT, and Australian GST within the first quarter. That's $3,000–7,000 in registration fees and ongoing compliance overhead. Lemon Squeezy's extra 2% is much cheaper.
The MoR decision is really a bet on your go-to-market. If you're targeting global from day one, start with an MoR platform. If you're US-first and international expansion is a future problem, start with Stripe and consider switching when you cross 5+ tax jurisdictions.
Browse boilerplates with Stripe, Lemon Squeezy boilerplates, and the full SaaS billing guide on StarterPick.