Exit-interview widget for SaaS churn
The idea
Almost every small SaaS has a “Cancel” button that just… cancels. The founder never learns why, and never gets a chance to offer a pause instead — even though “pause” saves 15–30% of cancellations in products that offer it. Big companies build this in-house; small SaaS founders would drop in a widget.
Who pays
Bootstrapped and small SaaS founders — an audience that’s easy to reach (they hang out on X/indie-hackers) and understands MRR math instantly. Price at $29/month flat or 1% of saved MRR. The dashboard’s “MRR saved: $412 this month” number renews the subscription by itself.
MVP scope
- Script-tag widget with the 3-step flow, configurable reasons/offers
- Webhook out; optional direct Stripe pause/coupon actions
- Dashboard: reasons chart, save rate, MRR-saved counter
- Skip for v1: A/B testing offers, Paddle/Chargebee, multi-language
Build Offboard: an embeddable cancellation-flow widget for SaaS products.
Integration: the SaaS founder adds a script tag and calls
Offboard.open({ customerId, plan }) when a user clicks "cancel
subscription". The widget (a small self-contained Preact bundle, under
30KB, rendered in a modal with scoped styles) runs a three-step flow:
1. Reason: "What's the main reason you're leaving?" — single choice from
configurable options (too expensive, missing features, not using it,
switching to a competitor, other + free text).
2. Save offer, branched by reason: too expensive gets a discount or
downgrade offer; not using it gets a 2-month pause; missing features
gets a "tell us what's missing" box with a "we'll email you when it
ships" promise. Offers are configured in the dashboard per reason.
3. Confirm cancel or accept the offer. Either way, fire a webhook to the
host app and optionally call the Stripe API directly (pause / coupon /
plan change) if the founder connects their Stripe account.
Founder dashboard: cancellation reasons over time, save rate per offer,
free-text answers in a readable feed, and estimated MRR saved. Auth +
data via Supabase; the widget served from a CDN route.
Ship with sensible default copy that is respectful — no dark patterns, no
guilt-tripping, cancel is always reachable in one click on every step.
That's a stated principle of the product.
// More B2B ideas
-
Compliant labels for cottage food producers
Home bakers and small food producers hand-make labels that violate state cottage food rules; this generates compliant labels with allergens per state.
B2B weekend -
ATS duplicate checker while sourcing on LinkedIn
Agency recruiters waste outreach on candidates already in their ATS; this extension flags known profiles and past contact history as they browse.
B2B Chrome extension 1 week -
Belt testing and curriculum tracker for martial arts schools
Martial arts school owners track student stripes and testing eligibility on index cards; this tracks progress, flags who is ready, and runs test day.
B2B 1 week -
Bait station scanning for pest control routes
Pest control techs hand-log rodent station checks that commercial clients audit; this scans station QR codes and builds the service report on site.
B2B Mobile 1 month