Blog
Churn, dunning & retention — the playbook.
Practical guides on keeping subscription revenue you've already earned — failed- payment recovery, Stripe dunning, and cancel flows that save customers without dark patterns.
The best Churnkey alternatives for Stripe SaaS (2026)
An honest look at the top Churnkey alternatives for Stripe SaaS: what each tool does best, real pricing, and how to choose if you're Stripe-only.
Jun 13, 2026 · 8 min read
FTC click-to-cancel: what your cancel flow actually needs
The FTC's click-to-cancel rule was vacated in 2025 — but the same 'cancel as easily as you signed up' principle lives on in ROSCA and state auto-renewal laws. Here's what your cancel flow still needs.
Jun 11, 2026 · 6 min read
Stripe dunning best practices for 2026
Stripe's built-in retries are a floor, not a strategy. A practical guide to decline-code-aware retries, a 4-touch dunning sequence, deliverability, and the numbers to watch.
Jun 10, 2026 · 8 min read
How to reduce involuntary churn in your SaaS
Involuntary churn — failed payments, not cancellations — is the quietest leak in subscription revenue. How to find it, fix it with smart retries and dunning, and measure recovery.
Jun 9, 2026 · 7 min read
Stripe past_due vs unpaid: what each subscription status actually means
past_due means Stripe is still retrying; unpaid means it stopped. What each status means, what controls the difference, and the right recovery move for each.
Jun 8, 2026 · 6 min read
Stripe decline codes explained: what each means and whether to retry
A practical reference to Stripe decline codes — soft vs hard, what each means, where to read it, and whether to retry, send a card-update email, or stop.
Jun 6, 2026 · 5 min read
Handling the invoice.payment_failed webhook without duplicate emails or dead links
Stripe's invoice.payment_failed fires on every retry. How to dedupe events, send a fresh hosted pay link, and stop cleanly when next_payment_attempt goes null.
Jun 4, 2026 · 6 min read
Dunning email templates for Stripe: a copy-paste sequence that recovers payments
A copy-paste 4-email dunning sequence for Stripe: subject lines, body copy, and decline-reason tailoring that recovers more failed payments.
Jun 3, 2026 · 5 min read
How to design a SaaS cancellation flow that actually saves customers
A 5-screen blueprint for a SaaS cancellation flow that saves customers without dark patterns: a reason survey, reason-matched offers, a one-tap exit, win-back.
Jun 2, 2026 · 6 min read
Stripe billing portal limitations: when you need an alternative
Stripe's native customer portal is great for the basics — until you want to retain the customer who clicks cancel. The walls it hits, and when you've outgrown it.
Jun 1, 2026 · 5 min read