(Case study · 07)
LUMA Business OS
A four-branch salon business of this size usually runs on six disconnected tools: Instagram for leads, WhatsApp for chasing them, a paper diary for slots, a separate POS, Tally for GST, and one receptionist's memory for whether anyone came back. LUMA is what replacing all six with one spine looks like.
Built as a product design case study. Every record in the build — branches, staff, customers, GSTINs and amounts — is seed data written for the demo.
(Why I made this)
What does it look like when six tools become one spine?
A four-branch salon business usually runs on six disconnected tools: Instagram for leads, WhatsApp to chase them, a paper diary for slots, a separate POS, Tally for GST, and one receptionist's memory.
Every name, number and amount gets typed again.
LUMA is my answer: one spine that carries a customer from an Instagram enquiry to a GST-compliant invoice without anyone retyping anything.
(The problem)
Six tools, one customer
Design hypothesis · drawn from the case study
- LeadLives in Instagram DMs
- Follow-upChased by hand on WhatsApp
- BookingA paper diary
- BillA separate POS
- GSTRetyped into Tally
- RebookingDepends on one person's memory
(What changed because of it)
Question, decision, screen
Design decisions · each is visible in the build
Every tool kept its own copy of the truth.
One piece of state flows through twelve steps; no screen owns its own copy.
The whole journey
The invoice is where GST mistakes cost money.
Design the invoice first, because it's the hardest screen.
Invoice
Salons price with tax included.
Work 18% GST backwards from the tax-inclusive price, with CGST, SGST and the SAC code.
Billing & POS
Money screens drown in cards.
Whitespace, dividers, tables and compact KPI strips instead of cards everywhere.
Every screen
(Information architecture)
Grouped by what the business is doing
The navigation follows the spine: the core flow first, then running the studio, then growing it, then looking back. These are the build's real sections.
LUMA Business OS
- Core flow
- Overview
- Leads
- Customers
- Appointments
- Studio operations
- Services
- Staff
- Billing & POS
- Inventory
- Memberships
- Growth & reach
- Campaigns
- Automation
- Insights & setup
- Analytics
- Reports
- Settings
(Flow)
One journey, from enquiry to rebooking
01 · A customer
- Instagram enquiry
- Lead
- Appointment
- Bill at the counter
- GST invoice
- WhatsApp receipt
- CRM record
- Rebooking reminder
(Values)
What I refused to compromise
Built for India, not localised into it
Rupees in lakhs and crores, GST worked backwards from tax-inclusive prices, Bharat QR, T+1 settlement.
Nobody retypes anything
One journey, one piece of state.
Density without drowning
One spacing scale, one type scale, one icon family across fifteen screens of money data.
Colour that everyone can read
The palette was run through a colour-blindness validator in both themes, not eyeballed.
(Mood board)
Dense, calm, and correct to the paisa
A violet for action on a soft lilac ground, with status kept to quiet tints: mint when money is settled, amber for a note. Charts are hand-drawn SVG, with no charting library.
Colours sampled from the product's screens
- Action
#6539C9 - Ground
#F5F3FB - Card
#FFFFFF - Settled
#E4F2EE - Note
#FEF4E0



- Dense
- Calm
- Exact
- Indian by default
(What I made)
Fifteen screens on one spine
I designed and built LUMA: fifteen screens and nine overlay states, from lead to rebooking, in two themes, with seed data written for the demo.
- Leads board
- Appointments
- Billing & POS
- GST invoice
- WhatsApp receipts
- Customer 360
- Memberships
- Hand-drawn charts
- Two themes
The screens
Fifteen screens that carry one salon chain from an Instagram enquiry to a GST-compliant invoice without anyone retyping a name, a number or an amount.
(Up close)
The counter
123456- Each service carries its tax code, 999721
- Tax worked backwards from the tax-inclusive price
- CGST and SGST, each at 9%
- Payment method and GST validation, at a glance
- Settled T+1, to the right account
- The receipt goes on WhatsApp
(Testing)
Verified, not asserted
A harness walks all fifteen routes and nine overlay states at three widths and flags any element crossing its container. It caught two bugs that looking at the screens never would have.
- Routes clean
- 15 of 15, at 380, 1024 and 1440
- Overlays in bounds
- 9 of 9
- Horizontal page overflow
- Zero
(What I learned)
LUMA taught me to design the hardest screen first. Once the GST invoice was right, every screen before it knew exactly what it had to hand over.
Need something like LUMA Business OS?
Tell me what you want to build. I'll reply with how I'd build it, a rough timeline and a cost range. Free, and no obligation.
Next project
EchoFrame