all projects
Subscription POS preview

Subscription POS

Privateweb

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.

React.jsNode.jsStripe SubscriptionsPostgreSQL
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

Stripe Subscriptions
Don't reinvent recurring billing — it's a regulatory + tax minefield
Webhook-driven reconciliation
Stripe is the source of truth for money; the POS mirrors state but never overrides Stripe
PostgreSQL with proper FK constraints
Subscriptions have rich relationships (plan → subscription → invoice → payment); SQL is the right tool
Customer self-service portal
Cuts support load by letting customers pause / change plan / update card themselves
Dunning flow
Most subscription revenue lost is to failed cards, not cancellations — retry + email is the highest-leverage feature

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.