Caleb Kim
in
Caleb Kim in
Caleb KimGina's K
01 CONTEXT02 SOLUTION03 UNDER THE HOOD04 DECISIONS05 REFLECTION
Caleb KimGina's K·CASE STUDY
CASE STUDY · BUILD — DESIGNED & CODED

Gina's K

LIVE SOLO · DESIGN + BUILD

The site and day book a Korean head spa runs its whole day on.

ginaskheadspa.com, top to bottom — the studio's public face.
TL;DR — A SCREENER CAN STOP HERE

Gina's K Head Spa is a real studio in Mineola, NY — run by Gina, whose English is limited, on a counter tablet. I built its marketing site, online booking, and the staff day book she runs the business on: appointments, comps and discounts, commissions, month-end books, gift cards with her own printed numbers. Live at ginaskheadspa.com, with real bookings on the calendar.

2SURFACES — PUBLIC SITE + DAY BOOK
17SQL MIGRATIONS — HAND-RUN
10%COMMISSION — LIST PRICE, ALWAYS
ROLESolo — design + build
TIMELINE2026 → ongoing
TEAMSolo + AI pair · one owner
TOOLSNext.js 14 · TypeScript · Tailwind · Supabase · Netlify
01 — CONTEXT

Software for the front desk, not for a demo

The owner runs the studio herself, her English is limited, and the whole operation lives on one tablet at the counter. Every feature had to survive a real day — walk-ins, comps for influencers, staff whose hours change, gift cards sold on paper.

✦ NORTH STAR

“Can Gina run the whole day from the counter tablet?”

Inside Gina's K Head Spa — wash chairs, mirrors, warm wood
The studio in Mineola — the software's only user sits at its front desk.
02 — SOLUTION

A public site that books, a day book that runs the studio

Guests book online; the desk runs everything else — arrivals and no-shows, editable prices with Free and Discount modes, split-staff add-on commissions, persistent customer notes, and month-end books without a spreadsheet.

The public side — picking a treatment, a specialist, and a time at ginaskheadspa.com.
Month books panel — income, comps and discounts, per-specialist commissions
Month-end books in one panel — income taken, value comped away, each specialist's commission, day by day.
INSIGHTCommission on list price, alwaysComps charge $0 and discounts charge less — but the specialist did the work, so commission is always on the list price. Only the day's takings read the charged price.
INSIGHTThe studio's own numbersGift cards are her printed cards — 001, 002… typed in at sale, duplicates rejected, balances drawn down until $0.
03 — UNDER THE HOOD

The same screens, flipped over

The rules that keep a real business honest live in the database — row locks, exclusion constraints, atomic RPCs — not in the interface. Toggle any screen below to see the code behind it.

FRONTENDNext.js 14 · TypeScript · Tailwind
BACKENDSupabase — Postgres · RLS · RPCs
HOSTINGNetlify — auto-deploy from main
DISCIPLINEMigration before push — a hard rule
KEY SCREEN A · GIFT CARDS
Gift cards panel — Sell / Use / All cards tabs over the day's tally
Same screen, both faces — her printed card numbers, with running balances.
KEY SCREEN B · THE DAY GRID
The day book — sage FREE and blue DEAL cards on the day's schedule
Same screen, both faces — comps in sage, deals in blue, no double-booking by construction.
04 — DECISIONS

What I said no to

✕ REJECTEDGenerated gift-card codesv1 generated codes; the studio sells printed cards. v2 uses her numbers, typed in — the software bent to the business.
✕ REJECTEDAuto-replying to every reviewThe AI drafter answers 4–5★ automatically; 1–3★ are held for a human. Apologies shouldn't come from a robot on autopilot.
✕ REJECTEDCommission on the charged priceA comp charges $0, but the specialist still worked — commission stays on list price.
✕ REJECTEDPushing before migratingA migration that silently didn't apply forced a live rollback — now every migration ends with a confirmation SELECT and is verified before deploy.
A NOTE ON HONESTY

“The screenshots use seeded test data — real customers' names and bookings stay off the internet. Everything else is the live product exactly as Gina runs it.”

05 — REFLECTION

The software bends to the business

Every rework went the same direction: toward how the studio actually runs — her printed gift cards over generated codes, list-price commissions over charged-price math, a 15-minute grace window because real appointments breathe. The deploy discipline came the hard way: verify the database saw the migration before the code that needs it goes live.

SAY HELLO Like what you see? Let's talk. bycalkim@gmail.com →
UP NEXT Conch AISHIPPED User research and A-B testing through Conch AI's early growth — 2M+ users reached. →
LAST DEPLOYED AUG 2026 · NYC
ESC
↑↓ navigate↵ openESC close