Portfolio · Churn Recovery

Recover revenue from failed payments.

Payment recovery, dunning, and customer lifecycle systems for SaaS and subscription businesses.

Flagship Build

Rev Engine

A churn recovery engine that detects failed payments, determines why they failed, alerts customers through the appropriate recovery flow, and measures whether the revenue was recovered.

LiveStripeWebhooksDunningKlaviyoSupabase

A recovery layer around Stripe

Rev Engine detects payment failures, identifies why they happened, selects the appropriate recovery path, and tracks the customer until payment succeeds.

Features

  • Klaviyo integration for automated recovery communication
  • Different recovery loops for different Stripe decline codes
  • Supabase database for events, customers, recovery state and outcomes
  • Dashboard for failed payments and recovered revenue
  • Idempotency to prevent duplicate webhook processing
  • Webhook history for debugging and operational visibility
  • Card-expiration detection and preventative recovery
  • Recovery state tracking from failure through successful payment
  • Automatic workflow stopping after successful payment

Stack

Next.jsTypeScriptStripeSupabaseKlaviyoWebhooks

How it works

01

Detect

Stripe sends the payment event to the engine.

02

Diagnose

The system identifies the failure and relevant decline code.

03

Recover

The customer enters the appropriate recovery workflow.

04

Confirm

The engine detects successful payment and updates recovery state.

05

Measure

Recovery outcomes are surfaced in the dashboard.

12

Stripe event types

Idempotent

Event processing

View Live Rev Engine

Recovery Systems

Payment recovery work

Systems built around the same problem: keeping customers paying and recovering revenue when payments fail.

Client Result42% recovery

Failed Payment Recovery

A payment recovery system that detects failed Stripe payments and routes customers into the appropriate recovery sequence.

Features

  • Stripe webhook events
  • Klaviyo recovery flows
  • Decline-code routing
  • Customer payment alerts
  • Recovery status tracking
  • Automatic recovery confirmation
StripeKlaviyoWebhooksNext.js
Client Result40% churn prevented

Pre-Expiration Card Recovery

A preventative payment recovery workflow that identifies cards approaching expiration and contacts customers before a renewal payment fails.

Features

  • Upcoming card-expiration detection
  • Preventative email sequences
  • Klaviyo integration
  • Customer segmentation
  • Payment-status tracking
  • Recovery reporting
StripeKlaviyoAutomation
Client Result3.2 days avg. recovery

Payment Failure Recovery Workflow

A cross-system recovery workflow that turns failed payment events into CRM tasks, customer notifications, and automated follow-up.

Features

  • Stripe payment events
  • CRM synchronization
  • SMS and email recovery
  • Customer account alerts
  • Failure-state tracking
  • Recovery timing analysis
StripeCRMWebhooksAutomation
Client Result28% churn reduction

Renewal Engagement Scoring

A customer lifecycle system that identifies customers showing signs of renewal risk and triggers retention workflows before the payment event.

Features

  • Pre-renewal customer signals
  • Engagement scoring
  • Retention segments
  • Klaviyo workflows
  • Upsell opportunities
  • Renewal monitoring
KlaviyoStripeLifecycle

Supporting Infrastructure

The systems underneath revenue

Billing, integrations, reconciliation, dashboards and event infrastructure that support the recovery layer.

Live

SaaS Stripe Subscription Billing

A production-style subscription billing system connecting Stripe Checkout, subscriptions, customers, webhooks, and application accounts.

Features

  • Stripe Checkout
  • Subscription lifecycle management
  • Webhook processing
  • Customer synchronization
  • Subscription status tracking
  • Failed-payment handling
Next.jsStripeFirebaseTypeScript
View live build
In Development

Usage-Based Billing

A metered billing system for SaaS products that need to charge customers according to actual product usage.

Features

  • Usage event ingestion
  • Meter tracking
  • Billing-period aggregation
  • Spend monitoring
  • Usage history
  • Spend-cap handling
StripeNext.jsPostgreSQL
In Development

Stripe Connect Reconciliation

A reconciliation system for marketplace payments that compares Stripe Connect transactions against internal records and highlights discrepancies.

Features

  • Connect account tracking
  • Transaction ingestion
  • Payment reconciliation
  • Payout reconciliation
  • Discrepancy detection
  • CSV export
Stripe ConnectPostgreSQLNext.js
Client Result

Stripe → CRM Pipeline Sync

A payment-to-sales pipeline that moves Stripe customer and payment events into the CRM so teams can act on payment activity without manually checking Stripe.

Features

  • Stripe webhook integration
  • Customer synchronization
  • Payment-status triggers
  • CRM pipeline updates
  • Automated tagging
  • Idempotent processing
StripeCRMWebhooksAutomation
Client Result

Revenue Dashboard

A unified dashboard that combines payment, customer, and sales information to give teams one view of revenue performance.

Features

  • Stripe revenue data
  • CRM data
  • Customer-level metrics
  • Revenue trends
  • Payment health
  • Recovery metrics
Next.jsStripeCRMAnalytics
Illustrative

Webhook Orchestration

A reusable webhook architecture for receiving, validating, storing, and routing payment events reliably across multiple business systems.

Features

  • Webhook signature verification
  • Event persistence
  • Idempotency
  • Event deduplication
  • Retry-safe processing
  • Failure logging
Next.jsTypeScriptWebhooksPostgreSQL

Engineering Approach

Built around reliable payment events.

Payment recovery is not just sending an email after a failed charge. The system needs reliable event processing, customer state, failure diagnosis, automation and measurement.

Webhook reliability

Verify, persist and safely process Stripe events.

Idempotency

Prevent duplicate events from producing duplicate actions.

Persistent state

Track customers, failures, recovery attempts and outcomes.

Lifecycle automation

Connect payment state to targeted customer communication.

Your revenue

How much revenue are failed payments costing you?

Find the leaks first. Then decide what is worth fixing.