Case Study · Cleopatra INK

Cleopatra INK — End-to-End Booking, Stripe Connect Payments and Automated Artist-Earnings SaaS for Permanent-Beauty Studios (Next.js + Node.js + MongoDB)

How UnlockLive merged three disconnected tools — calendar bookings, in-studio POS, and a commission spreadsheet — into a single end-to-end SaaS for a US permanent-makeup studio. Public booking with Stripe deposit, in-studio Stripe payment, automated artist-earning splits via Stripe Connect, owner financial dashboard, artist self-serve earnings portal — saving 12+ hours per month on reconciliation and eliminating earnings disputes since launch.

  • IndustryBeauty / Studio-Operations SaaS
  • Year2024
  • CountryUSA
  • Duration4 months
Cleopatra INK — End-to-End Booking, Stripe Connect Payments and Automated Artist-Earnings SaaS for Permanent-Beauty Studios (Next.js + Node.js + MongoDB) hero screenshot

At-a-glance results

  • 12+ hrsSaved per month on commission reconciliation
  • 0Earnings disputes since launch — the artist portal is the ledger
  • 4 wksFrom kickoff to first revenue collected through the new platform
  • 1Single source of truth for booking, payment, and artist payout (was 3 disconnected tools)

The challenge

Cleopatra INK ran their permanent-makeup studio on three disconnected tools: a calendar app for bookings, a separate POS for in-studio payments, and a Google Sheet for artist commissions. Reconciling them at month-end took 12+ hours, the studio owner couldn't tell at a glance which artist was actually profitable, and disputes with artists over 'how much do I get paid for that touch-up?' were a recurring source of friction. Meanwhile, deposits were collected by hand on the phone — so no-shows hurt twice (once for the empty chair, once for the chargeback fight).

The ask was to compress the entire studio operation into one SaaS — public booking, secure deposits, in-studio payment, automated artist-earning splits, consent-form attachments, and an owner dashboard with revenue and artist performance — built specifically for the permanent-beauty workflow (deposit + balance, designer + artist roles, multi-touch services, referrals) instead of a generic salon CRM.

Our solution

We built Cleopatra INK as a single, multi-tenant SaaS in three coordinated surfaces: a public booking page, an in-studio operations console, and an artist self-serve portal — all powered by a Node.js + Express API, MongoDB Atlas, and a Stripe + Stripe Connect payment layer that owns the entire money flow.

The public booking page is the top of the funnel. A client picks a service (microblading, lip blush, eyeliner, removal, touch-up), picks an artist (with profile, portfolio, and reviews), picks a slot from live availability, fills the consent intake, and pays a deposit through Stripe Checkout — all in one mobile-friendly flow. A confirmation SMS goes out via Twilio with a magic-link reschedule URL, so the no-show rate drops without a phone call.

The in-studio operations console is what the front-desk and the artist actually use during the appointment. They see the day's schedule, the consent forms attached to each appointment, the deposit status, and a one-tap 'Take Payment' button that opens a Stripe Checkout for the balance. The moment the balance is paid, the system runs the commission split: the studio's house cut goes to the platform's main Stripe account; the artist's share goes directly to their connected Stripe Connect account; any product / room / referrer fees are subtracted before the split, all driven by per-service and per-artist commission rules the owner sets once and forgets.

The artist self-serve portal is what makes earnings disputes disappear. Each artist logs in to a portal that shows every appointment they performed, the gross amount, every fee or split, and the net amount paid out — with the date Stripe transferred it. There's no spreadsheet, no email, no end-of-month negotiation; the math is the ledger.

For the owner, a financial dashboard rolls up revenue by service, by artist, by location, and by date range, with a one-click export. A referral program tracks designer / artist referrals end-to-end so a designer who brings in a new client gets paid automatically. Consent forms, design files, and signed agreements live in S3 with time-bounded signed URLs — never exposed via raw object access.

Underneath it all: Stripe webhooks land idempotently into the Node.js API; deposits, balances, refunds, and Stripe Connect transfers are reconciled against a per-appointment ledger so the owner can prove every dollar at any time.

  • Public mobile-first booking — service + artist + slot + consent intake + Stripe deposit, all in one flow
  • Twilio SMS confirmation with a magic-link reschedule URL — no-show rate drops without a phone call
  • In-studio operations console with the day's schedule, attached consent forms, and one-tap 'Take Payment'
  • Automated artist-earning splits via Stripe Connect — house cut, artist share, room / product / referrer fees, all on the same charge, idempotently
  • Per-service and per-artist commission rules — set once, forget; the math becomes the ledger
  • Artist self-serve portal — every appointment, gross, every fee, net, paid-out date — earnings disputes have nowhere to live
  • Designer + artist referral program with automatic referrer payout when a referred client first books
  • Owner financial dashboard with revenue by service, artist, location, and date range, plus one-click export
  • Consent forms, design files, signed agreements stored in S3 with time-bounded signed URLs only — no raw object access
  • Per-appointment EarningsLedger with checksum reconciliation — the owner can prove every dollar at any time

How we built it

  1. 01

    Discovery, permanent-beauty workflow, commission rules

    We started by spending two days in the studio: shadowing an artist through a microblading + touch-up sequence, then sitting with the owner through a month-end reconciliation. Out of that came the data model the rest of the build sits on — `Service` (with deposit + balance + duration), `Artist` (with per-service commission rules), `Designer` (for referrals), `Appointment` (with consent forms attached), and a per-appointment `EarningsLedger` row that becomes the single source of truth for who gets paid what.

  2. 02

    Public booking + Stripe deposit + SMS confirmation

    We shipped the public booking page first because deposit collection is the highest-leverage no-show fix. A client picks service, artist, slot, fills the consent intake, and pays a deposit through a server-created Stripe Checkout session — with the appointment ID and deposit amount baked into metadata so the webhook can reconcile automatically. A confirmation SMS goes out via Twilio with a magic-link reschedule URL, and the calendar slot is held against the deposit.

  3. 03

    In-studio console + Stripe Connect automated splits

    The in-studio console is a tablet-friendly UX with the day's schedule, attached consent forms, and a one-tap 'Take Payment' for the balance. On a successful balance charge, the system runs the commission split: house cut to the platform Stripe account, artist share to the artist's connected Stripe Connect account, room / product / referrer fees subtracted first — all driven by per-service and per-artist commission rules. Stripe Connect handles the multi-party transfer in the same charge, idempotently.

  4. 04

    Artist portal, owner dashboard, observability, hand-off

    We shipped the artist self-serve portal so earnings disputes vanish into a verifiable ledger, the owner's financial dashboard for revenue + artist performance reporting, and a designer/artist referral program with automatic payout. We instrumented every Stripe webhook with idempotency, locked appointment ledgers against a checksum, and deployed observability through Sentry + Datadog. The owner got a runbook for onboarding a new artist, configuring commission rules, refunding a deposit, and exporting a financial report.

Tech stack

  • Next.js (React)
  • Node.js + Express
  • MongoDB (Atlas)
  • Stripe Payments + Stripe Connect (automated splits)
  • Twilio (booking SMS)
  • AWS S3 (consent forms, design files)
  • Bootstrap 5
  • Sentry + Datadog
  • Docker
  • SaaS Engineering
  • Stripe Connect Integration
  • Studio Operations Software
  • UI/UX Design
  • Cloud Hosting
Booking, payments, and artist payouts used to live in three different apps. UnlockLive merged them into one tool that our team picked up in a single afternoon.
Cleopatra INK Studio Owner · Founder

Frequently asked questions

How do you automate artist-earning splits without a manual reconciliation step?

Stripe Connect. Each artist is onboarded as a Connected Account; every per-service / per-artist commission rule is stored as a structured record on the artist's profile. When the in-studio balance is charged, we use Stripe's automatic transfer + application_fee mechanism to split the same charge across the studio's main account and the artist's connected account in one atomic operation. Room, product, and referrer fees are subtracted before the split via a per-appointment EarningsLedger — so the artist sees the same number the owner sees, and the math is never re-done by a human.

How does the platform reduce no-shows and last-minute cancellations?

Three layers. (1) Every booking requires a Stripe deposit through Stripe Checkout — the slot is held against money, not against a phone call. (2) A Twilio SMS confirmation goes out immediately with a magic-link reschedule URL, so a client who can't make it reschedules in one tap instead of ghosting. (3) The deposit policy is configurable per-service: non-refundable for high-demand services, partially refundable inside a window for routine appointments — so the studio's no-show economics stay healthy without scaring away first-time clients.

Is Cleopatra INK a custom build or a template?

It's a fully custom SaaS built around the permanent-beauty workflow specifically. Off-the-shelf salon CRMs treat 'deposit + balance + per-artist commission + designer referral + consent attachment' as edge cases bolted onto a generic appointment system — Cleopatra INK treats them as first-class concepts. The data model, payment flow, and earnings logic were designed from scratch around the studio's actual operations.

Does the platform support multiple studios or franchisees?

Yes — the architecture is multi-tenant by design. A second studio is provisioned by creating a new tenant, onboarding their artists into their own Stripe Connect accounts, and configuring their commission rules. The same engine, same artist portal, same owner dashboard — re-skinned for the new brand. No code change required.

What payment processor and stack power Cleopatra INK?

Stripe Payments + Stripe Connect handle deposits, in-studio balance, refunds, and automated artist payouts. The application is a Next.js (React) front-end with Bootstrap 5, a Node.js + Express API, MongoDB Atlas as the primary store, AWS S3 for consent forms and design files, Twilio for booking SMS, and Sentry + Datadog for observability — all containerized with Docker.

Want a result like this?

Talk to the same team that built Cleopatra INK — End-to-End Booking, Stripe Connect Payments and Automated Artist-Earnings SaaS for Permanent-Beauty Studios (Next.js + Node.js + MongoDB). We’ll scope your project, give you a fixed-price proposal, and show you the closest analog from our portfolio.

Book a strategy call