Short answer
RaftLabs built a custom gamified loyalty app for Bella Skin Institute in Calabasas, California, a cosmetic dermatology practice founded by board-certified dermatologist Dr. Anna Guanche. The Flutter-based iOS and Android app enables patients to earn points with QR code checkout in under 15 seconds (10% of cash payments), features expiring points with 28-day and 7-day urgency reminders called 'Pressure Points,' and includes a React admin panel the front desk operates without developer involvement. Built in 12 weeks, the practice owns the source code outright with no vendor lock-in or recurring licensing fees.
The situation
Dr. Anna Guanche spent 18 years building Bella Skin Institute into something more than a dermatology clinic. Board-certified, featured on Oprah and TLC, with a trademarked procedure (the GuancheLift™) and her own product lines, her practice in Calabasas serves a clientele that expects a premium experience at every touchpoint.
The business model for cosmetic dermatology depends on repeat visits. Botox every 3-4 months. Fillers every 6-12 months. Laser treatments in series. The patient who returns is worth significantly more than the one-time visitor. But between appointments, the practice had no digital touchpoint, no way to create urgency, and no loyalty system that matched the standard she had built over nearly two decades.
The leak is not the funnel. Practices spend to fill the top while revenue leaks out the bottom: the un-rebooked guest who loved the visit, walked out, meant to call, and never did. People do not ghost a practice on purpose. They just forget. Retention is a system, not an accident.
Every off-the-shelf loyalty platform she evaluated was built for coffee chains. Too rigid, too generic, and unable to handle the specific rules her business required: 10% cash-only point earning, expiring points to drive return visits, QR-based checkout, and a premium brand experience that would not cheapen what she had built.
She came to us to build the platform from scratch. We delivered in 12 weeks. The practice owns the code outright, with no vendor lock-in and no recurring licensing fees.

Engagement
The Bella Skin Institute engagement
- Client
- Bella Skin Institute, Dr. Anna Guanche's cosmetic dermatology practice in Calabasas
- What we built
- A custom iOS and Android loyalty platform: QR code checkout, Pressure Points expiry mechanic with 28-day and 7-day reminders, before/after gallery, service catalog, admin panel for front desk and management
- Delivery
- 12 weeks
- Stack
- Flutter, QR checkout, push notifications
- Status
- Live. The practice owns the code, data, and infrastructure with no vendor dependency
Before and after
What changed
- No digital loyalty system: patient points tracked manually, creating errors and no engagement between appointments
- Zero touchpoint during the 3-6 month gap between treatments
- Off-the-shelf platforms could not handle cash-only point earning rules or expiring point logic
- Staff manually entered transactions at checkout, causing delays and reconciliation problems
- No way to send targeted offers based on treatment history or point balance
- Generic loyalty UI would have undermined the premium brand standards built over 18 years
- Custom iOS and Android loyalty app built to Bella Skin Institute's brand standards
- QR code checkout credits points in under 15 seconds, with no manual entry and no errors
- "Pressure Points" expiration mechanic sends 28-day and 7-day reminders that drive return visits without discounting
- Before/after gallery and service catalog keep patients engaged and considering their next treatment
- Admin panel lets front desk staff process transactions and management adjust rules without developer involvement
- Practice owns the source code, data, and infrastructure with no vendor dependency
What we had to solve
Building an expiry mechanic that creates urgency without alienating patients
Expiring points are only useful if patients are reminded before it is too late to act. Too many reminders and they become noise. Too few and the mechanic fails. We designed a two-stage system called "Pressure Points" where a 28-day reminder acts as an early nudge and a 7-day reminder creates genuine urgency. Color indicators in the app shift as expiration approaches. Push notifications are triggered at both milestones. Getting the timing and tone right required close work with Dr. Guanche's team to match the brand voice: clinical, warm, and never pushy.
Making the admin panel fast enough for a busy front desk
The QR code scanning flow needed to work at front desk pace: scan a patient's code, enter the transaction amount, confirm, and the points credit, all in under 15 seconds. Any slower and staff would stop using it. We also had to design the rewards management, rule adjustment, and reporting tools so that non-technical management staff could operate them without training documentation or developer help. Two very different users, the front desk processing transactions and the manager adjusting campaigns, needed the same system to feel natural for each of them.
Proof
What the build delivered, and what this page can't claim
Delivery facts from a 12-week build. No visit-frequency or revenue figures were available for this review, so none are shown.
| Result | What changed | Period or context | Evidence and limitation |
|---|---|---|---|
| Time to launch | 12 weeks from concept to a live, fully automated platform | Custom iOS and Android loyalty app on a single Flutter codebase | Project-recorded. The practice owns the code outright, with no vendor lock-in and no recurring licensing fees |
| Checkout speed | Points credit in under 15 seconds via QR scan | Scan a patient's code, enter the transaction amount, confirm. Any slower and front desk staff would stop using it | Project-recorded |
| Return mechanic | Pressure Points expiry with 28-day and 7-day reminders | Drives return visits without requiring the practice to discount services | Project-recorded. Timing and tone were tuned with Dr. Guanche's team to match the brand voice: clinical, warm, and never pushy |
| Outcome figures | Not available | No visit-frequency or revenue measurements were on record for this review | Stated rather than estimated |
the build
What we built
We started with a full discovery sprint before any code was written: mapping every user journey, documenting all business logic including accrual rules, redemption caps, and expiry mechanics, and prioritizing the development backlog with time estimates. By the time development began, there were zero ambiguous requirements.
Points credit in under 15 seconds, no manual entry, no reconciliation errors
Patients open their app and present a unique QR code at the front desk. Staff scan it, enter the transaction amount, and points credit instantly at 10% of cash payments. No manual entry, no reconciliation errors. The entire transaction completes in under 15 seconds. The admin panel's scanning interface is optimized for checkout speed, not technical users.

Expiry drives return visits without requiring the practice to discount services
Countdown timers show points expiring in 28 days and 7 days. Color indicators shift toward red as expiry approaches. Push notifications fire at both milestones. The 28-day reminder acts as an early nudge toward booking a next appointment. The 7-day reminder creates genuine urgency. Expiry drives return visits without requiring the practice to discount services.

Practice stays present during the 3-6 month gap between visits, without any manual outreach
A before/after gallery organized by procedure type lets patients browse results from treatments they are considering. A full service catalog with descriptions and duration estimates lets them explore options and submit appointment requests directly from the app. The practice maintains a digital presence during the 3-6 month gap between visits without any manual outreach.

Front desk processes transactions, management adjusts the program, no vendor involvement required
Front desk staff process QR transactions, correct point balances, and manage appointment requests without technical training. Management adjusts earning rules, creates rewards, sets expiry windows, and reviews redemption analytics from the same panel. All changes publish to the mobile app instantly. No vendor involvement required.

The lesson
Loyalty is a return mechanism, not a points ledger
Points that sit in an account do nothing. The question is never how many points a patient has. It is what brings them back through the door. Expiring points work because they create a reason and a date: a 28-day nudge that says the practice is thinking of you, and a 7-day reminder that says the window is closing. That is a system. A ledger with no expiry is a vibe.
The second half of the lesson is fit. Off-the-shelf loyalty platforms are built for coffee chains: rigid rules, generic branding, no room for cash-only earning or a premium experience. A practice that spent 18 years building a brand cannot bolt on a system that cheapens it. The platform had to match the standard, or it would never be used.
How it runs
- Flutter
- The practice needed iOS and Android apps with identical features and a consistent premium look across both platforms. Flutter compiles to native code and produces near-native performance for the QR scanning, push notifications, and real-time point balance updates the app required, all from a single codebase.
- Hasura GraphQL
- The point balance dashboard and transaction history needed to update in real time when a QR transaction processed. Hasura's GraphQL subscriptions push changes to the mobile app instantly, so patients see their updated balance before they leave the checkout counter.
- PostgreSQL
- Patient records, transaction history, point balances, and expiry schedules all needed reliable structured storage with the query performance to support live dashboards and the audit trail the practice needed for accurate point reconciliation.
- Firebase
- Authentication and push notifications needed to work reliably on both iOS and Android without becoming a maintenance burden. Firebase handles both at scale and powers the two-stage Pressure Points reminders that fire at 28 and 7 days before expiry.
Common questions
Off-the-shelf platforms are built for the average use case (coffee shops, retail chains). They cannot handle cash-only point earning, expiring points with specific urgency timing, or QR-based checkout at a medical front desk. More importantly, they cannot match a premium brand. The appearance of a generic loyalty app undermines years of brand building. Custom development costs more upfront but gives the practice rules that actually match its business model and a product that feels like it belongs to the brand, not a third party.
Upfront, yes. Over three to five years, custom is usually more cost-effective. SaaS platforms charge monthly fees per user or per transaction, raise prices annually, and require upgrades for advanced features. You never own the system. With custom development, the one-time investment means no per-user fees, you own the code and data, and you can modify the platform without asking a vendor. Most projects break even within 18 to 30 months.
The patient opens the app and shows their unique QR code. The staff member scans it in the admin panel, enters the transaction amount, and confirms. Points credit instantly at 10% of the cash payment in Bella Skin's case. The whole transaction takes under 15 seconds. No patient name lookup, no manual entry, no end-of-day reconciliation errors.
Yes. The admin panel was designed for two different user types: front desk staff processing transactions quickly and managers adjusting rewards and campaigns. Both interfaces are self-explanatory. Staff can scan QR codes, correct point balances, and manage appointment requests without documentation. Managers can update earning rules, create new rewards, and review redemption data without contacting a developer.
Yes. After final payment, you receive the source code, database access, deployment documentation, and infrastructure credentials. You can hire any developer to maintain or extend it, switch hosting providers, or transfer ownership. There is no lock-in. Bella Skin Institute owns the platform outright, with no recurring licensing fees and no vendor dependency.
Yes. This build is one example of a wallet-card and points program; RaftLabs builds loyalty platforms for retail, utilities, and hospitality businesses too.
Related work
More work like this

Brux ships a dental marketing SaaS: AI smile previews, GoHighLevel sync, and self-serve onboarding built for 1,000-office scale
Brux Smile Makeover is a dental marketing SaaS where patients upload a selfie and get a lifelike AI smile preview in seconds. We built the AI pipeline, GoHighLevel two-way CRM sync, Stripe billing, and self-serve QR flyer onboarding built for 1,000-office scale.

Makeover generates photorealistic before-and-after previews that convert more consultations to bookings
Makeover lets service businesses show clients a photorealistic preview of their result on their own photo. Dental, aesthetics, hair, and 40+ other categories use it to convert more undecided consultations.

50+ clinics expand access to remote care after building a HIPAA-compliant telehealth platform with FDA-approved diagnostic peripherals
A US healthcare client needed more than video calls. We built Galen, a nurse-assisted HIPAA-compliant telehealth platform where a clinic nurse operates diagnostic peripherals while a remote doctor directs via body diagram and issues e-signed prescriptions. Per the client, in-person visits dropped 60%, patient engagement increased 30%, and 50+ clinics onboarded in 12 weeks.