Every visit becomes Drops
Members earn Drops automatically from Square-checkout visits — accounts come from real activity, not sign-up forms. One Drop per dollar, with 100 Drops worth $5 in rewards.
You can also continue with a simpler preview.
Jocassee Hydration & Aesthetics
A refreshed identity. A thoughtful rewards program. One connected platform for the people who keep coming back.
See it come together
The starting point
For Jocassee’s studios in Seneca, Clemson, and Salem, South Carolina, the experience shouldn’t end at checkout.
We connected the whole journey: a refreshed brand, a loyalty program shaped around real visits, and a member platform that makes the value easy to see. Square handles the visit. Jocassee Rewards carries the relationship forward.
A balance you can find. Rewards you can reach. Progress you can feel. Scroll to see the strongest parts come together as Jocassee Rewards.
Identity. Program. Product.
Jocassee Rewards
One connected member experience. Interface shown with synthetic member data.
Explore the program01 / The identity
Deep lake blues. A warm peach accent. A tall custom wordmark, with a wave drawn from the space between its two S’s. A complete visual language, carried from the brand into the product.
The type, the tone
Reward
the routine.
DM Serif Display gives the brand its unhurried voice. DM Sans keeps every form, label, and member interaction clear.
DM Serif Display + DM SansFrom identity to interface
Deep Blue anchors the balance card and primary actions. Blue Sky makes room for quieter moments. Dusty Peach marks birthdays and highlights. The wave adds texture without competing with the content.
The wordmark keeps the width of its E as clearspace; the supporting J keeps its own width. Small rules that make the system consistent wherever it appears.
02 / The program
A loyalty program members can understand and a front desk can run. Built around the way Jocassee already works.
Members earn Drops automatically from Square-checkout visits — accounts come from real activity, not sign-up forms. One Drop per dollar, with 100 Drops worth $5 in rewards.
A member taps a reward and gets a short code, good for 14 days. Today the desk applies it at checkout; next, the same code is planned to work as a promo code when booking through the Square booking link.
Earn at Seneca, redeem at Salem: the balance is one account across all three studios.
Qualifying visits over a rolling year set the member's tier and earning rate — 1.0×, 1.1×, and 1.25× Drops.
Bonus Drops mark the member's birthday month and every tenth qualifying visit.
Members share a link; when a friend books and visits, both sides are rewarded.
Status follows qualifying visits over a rolling year.
03 / The member experience
Sign in with a phone number. See what’s earned. Choose a reward. A portal that installs from the browser and belongs on the member’s phone.
Drops, tier progress, and the next visit milestone in one calm overview.
A clear reward menu turns a points balance into a reason to return.
Staff apply a short code in the Square checkout they already use.
Interface studies adapted from the project. All member balances, progress, and codes shown are synthetic.
04 / Behind the experience
Square stays the source of truth for bookings and payments. The portal keeps the loyalty history. Clear responsibilities make the two work together.
Bookings · Checkout · Payments
Earn · Hold · Redeem · Reconcile
One phone · One balance · Three studios
Identity & access
Patients already book at Jocassee through Square using their mobile number — so the phone is the identity key the business runs on. A one-time code through a managed verification rail matches that existing behavior, adds no password to remember or reset, and joins the member to their Square history at every boundary.
Signing in with a number Square has never seen creates no account — there is nothing to farm. Membership originates from real studio activity, so when a member first confirms who they are, their Drops are already waiting.
Commerce
Square stays the source of truth for bookings, checkout, and payments; the platform's Postgres is the source of truth for Drops. Neither system pretends to own the other's facts, which keeps every reconciliation honest and every integration boundary explicit.
A split bill produces several payments for one order. Earning on the order — not on payments — means paying with a card plus a gift card can never double-award Drops, and refunds claw back against the same unit they awarded on.
Signature-verified Square events land in a durable inbox and are processed asynchronously; a five-minute backstop recovers anything missed, and a nightly reconciliation squares the books against Square itself. Loyalty math never depends on a single delivery arriving.
Loyalty spine
Drops are never edited in place: every earn, hold, redemption, and bonus is an appended entry, and per-member changes serialize under a row lock. The balance is always the sum of an auditable history — race-safe by construction.
Platform
Members, the owner's admin, and machine endpoints live in one Next.js app on Vercel — one deploy, one design system, one typed data layer. Authorization sits at the data-access boundary, and only minimized projections of Square data are stored, keeping the sensitive surface small. The portal itself installs from the browser: phone-first, no app store in the way.
Short redemption codes were shaped around how the desk already works: a member reads a code, staff apply the reward inside the Square checkout they use every day — no new hardware, no second screen. The same codes are planned to carry into Square's online booking as promo codes.
The refreshed identity ships as the product's design system — the palette, the DM faces, and the wave live as tokens and components, so the portal is the brand, not a themed template.
Earning, holds, clawbacks, and redemption land in pure, unit-tested modules before they touch a database — the arithmetic that moves Drops is verified on its own.
Brand. Product. Connected.