Treatment package balance tracker for med spas

B2BWeb1 weekNext.jsSupabaseTwilioStripe

The idea

Med spas sell packages - six laser sessions, three microneedling - because the upfront cash is great. Then the tracking falls apart: balances live in a notebook or a memo field in a generic booking tool, clients dispute how many sessions remain, and staff have no answer beyond whoever wrote the last note. Worse, clients who drift away mid-package do not come back, and a client who never finishes never rebuys.

Generic booking software has no package logic beyond a gift-card balance, and full med spa platforms are expensive migrations. The wedge is a standalone ledger the front desk taps at checkout, an immutable history that ends balance disputes, and automated SMS that turns forgotten sessions into booked visits and completed packages into rebuys.

Who pays

The buyer is the med spa owner or manager of a single location, at 69 USD/month - one rescued package completion and rebuy covers a quarter. Distribution: med spa owner groups on Facebook and Instagram, aesthetics industry conferences, and the device reps (laser, microneedling) who visit every spa and know which ones run on notebooks.

MVP scope

  • Package catalogue with session counts, validity periods, and prices
  • Front-desk search-and-redeem flow with immutable ledger entries
  • Reasoned manual adjustments visible in the ledger
  • Automated SMS: inactivity nudges, 60/30-day expiry warnings, rebuy prompts
  • Dashboard with outstanding session liability and redemption rates
  • Skip for v1: online booking, payment processing for packages, multi-location chains, EMR/charting integration
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build PackTrack, a web app that manages treatment package balances for med
spas. Stack: Next.js (App Router), Supabase for Postgres and auth, Twilio
for client SMS, Stripe for the spa's subscription. Magic-link auth for spa
staff; the front-desk flow must complete a redemption in under 10 seconds.

Setup: the spa defines its package catalogue - name (e.g. 6x laser hair
removal, 3x microneedling), session count, price, validity period in
months, and the treatment it applies to. Clients are added with name,
mobile, and email.

Core flow: when a client buys a package, staff record the sale, which
opens a package instance with a session balance and an expiry date. At
checkout after each visit, the front desk searches the client, sees open
packages, and taps Redeem - decrementing the balance and writing an
immutable ledger entry (who redeemed, when, which staff member performed
the treatment). Manual adjustments (goodwill session, correction) require
a reason and appear in the ledger. This ledger is the source of truth when
a client disputes their remaining balance.

Retention engine: automated SMS campaigns - a nudge when a client has not
redeemed in 6 weeks (you have 3 sessions left, book here with the spa's
booking URL), expiry warnings at 60 and 30 days, and a rebuy prompt when a
package completes. All templates editable, all opt-out compliant.

Pages: front-desk client search and redeem screen, client detail with
ledger, package catalogue, campaign settings, dashboard (outstanding
liability in sessions and value, packages nearing expiry, redemption
rate). Pricing: 69 USD/month per location via Stripe, 14-day trial.

// More B2B ideas