01 Audit
See the last 90 days of missed renewal pressure in one pass.
SecondLoop starts with a Stripe-first diagnostic so operators can quantify exposed revenue before turning on automation.
Stripe recovery v1
SecondLoop
Silent churn is still churn
SecondLoop is a focused SaaS surface for small subscription teams: audit the last 90 days, route customers into Stripe-hosted payment updates, and keep the operator view compact enough to run solo.
From Stripe webhook receipt to first customer touch.
Built for one-person teams before sales or support ops exist.
Subscription invoice failures only. No AI fluff, no extra rails.
Failed renewal detected
invoice.payment_failed enters the queue.
Prompt customer cleanly
Send a short recovery note with Stripe-hosted update flow.
See recovered revenue
Recovered invoices settle back into the operator timeline.
Why this v1 exists
The first release keeps each section narrow: diagnose, notify, recover, verify. No extra motion, no pricing maze, no pseudo-AI layer yet.
01 Audit
SecondLoop starts with a Stripe-first diagnostic so operators can quantify exposed revenue before turning on automation.
02 Notify
Customers get routed into Stripe-hosted payment updates instead of a custom billing maze your team has to maintain.
03 Recover
The dashboard stays compact: open cases, timing pressure, webhook health, and recovered revenue.
First-ship sequence
Sign in with a magic link, create the owner workspace, and claim the operator shell.
Connect a restricted Stripe key and save the Stripe webhook signing secret.
Run a 90-day failed invoice diagnostic to size the leak.
Turn on payment-failed prompts that point into Stripe Customer Portal.
Watch recovered revenue, unresolved cases, and event health from one shell.
Operator snapshot
Cloudsmith
Pro annual / expired_card
$1,490
41m since failure
Relayform
Growth monthly / authentication_required
$299
14m since action required
Northstar
Starter monthly / insufficient_funds
$119
Recovered in 32m
Blueprint
Dependencies, scripts, docs, dashboard surfaces, and CI are in place so the next passes can focus on actual Stripe onboarding, webhooks, and recovery state.
Passwordless Auth.js sign-in is wired through Resend.
The app locks /app until both workspace creation and Stripe verification succeed.
Workspace-specific webhook URLs are issued with opaque tokens.
CI is configured to run lint, typecheck, tests, and a production build.
v1 docs define scope, secrets handling, architecture, and release assumptions.
v1 scope
Built now
Next pass
Ready for the next prompt
This repo now reads like a product, not a starter template. The next phases can stay focused on real recovery logic.