Subscription POS
Recurring billing POS for service-based businesses. Subscription plans, automated billing cycles via Stripe Subscriptions, customer self-service portal, and dunning flows for failed payments.
A POS for the businesses Square doesn't serve well.
The problem
Service businesses — gyms, salons, cleaners, tutors — sell time slots and packages, not single items. Mainstream POSes (Square, Toast) optimize for transactions, leaving recurring-billing merchants to glue together Stripe + spreadsheets + reminder emails.
The approach
Built the data model around plans and entitlements rather than products and inventory. Stripe Subscriptions handles the actual money, but the POS owns the customer journey: signups, plan changes, pause/resume, dunning emails on failed payments, self-service portal for customers. Every subscription event from Stripe is consumed via webhook and reconciled into the local Postgres, so the merchant has one dashboard that tells the truth.
Tech decisions
Outcomes
- Plan / signup / billing / cancellation flow end-to-end
- Customer self-service portal — fewer support tickets
- Automated dunning on failed payments with smart retry windows
- Webhook-reconciled local DB stays in sync with Stripe
What I learned
Subscription businesses don't lose customers to cancellation — they lose them to expired cards no one chased. Dunning + a self-service portal are the two highest-ROI features in the entire product.