Fitness and beauty · Web system with an installable app (PWA)
Barbearia Lotus
Barbearia Lotus system: loyalty card on the phone, self booking for clients and a panel with schedule, cash register and commissions.

- Client
- Barbershop with a loyalty card and per barber scheduling
- Where
- Brazil
- Technology
- React · Vite · PHP 8 · MySQL · PDO · JWT · PWA · Hostinger
- Status
- Private access · lotus.nexialabs.com.br
- Development
- André Gomes · NexiaLabs
In short
The Barbearia Lotus system combines a client app, with a digital loyalty card and phone booking, and a staff panel with per barber scheduling, a cash register with commissions, products with stock, WhatsApp reminders and a waiting list. Every five haircuts the next one is on the house, and the system tracks that without paper. It was built by André Gomes at NexiaLabs with compiled React and a PHP 8 API on MySQL, on Hostinger shared hosting.
The client
Lotus is a barbershop that used a paper loyalty card and a loose schedule shared among the barbers. Paper cards get lost, stamps are easy to fake and nobody knows for sure how many cuts a client has had. A schedule scattered across WhatsApp chats caused double bookings and no shows. The owner also needed to close the day's register and work out each barber's commission without arguments at the counter.
The challenge
The loyalty card involves money: a double click cannot become two stamps, and a wrong stamp has to be reversed with a reason, without erasing history. Two barbers booking at the same moment cannot grab the same slot. Commission has to reflect the rate on the day of the service, even if the owner changes the rule later. And all of it had to run on shared hosting with no long running process, no Docker and no composer, used on the phone by real clients.
What was built
André split the system into two doors. Clients sign in with phone and PIN, see their stamp card, book and reschedule, and check their history. Staff sign in to the panel with phone and password and get per barber scheduling, today's appointments, the register, products, reports and an audit log for the owner only. Only staff record a haircut, each record carries an idempotency key and a booking locks the barber's schedule in the database before writing. The next day reminder is a button per client that opens WhatsApp with the text ready, at zero API cost.
What the system does
- Digital loyalty card: five haircuts and the next one is on the house, with a QR code coupon.
- Client self booking, with rescheduling, recurring slots and a waiting list.
- Per barber schedule that prevents double booking and allows staff confirmed squeeze ins.
- Cash register with commission saved at the time of entry, and products with stock control.
- Next day reminders that open WhatsApp with a ready message for each client.
- Free slots image generated on the phone itself, ready to post on WhatsApp or Instagram.
- Public shop with product photos and a haircut gallery published by the owner.
- Event log with author, time and address, with every stamp reversal justified.
// For whoever reviews the code: architecture and decisions.
Under the hood
The frontend is React 18 with Vite, compiled to static files served by Apache, with SPA routing through .htaccess. The API is plain PHP 8 with PDO and MySQL, with one entry point, a routes file and one class per concern: schedule, bookings, loyalty, register, commission, products, reminders. Sessions use JWT HS256 signed with hash_hmac, with no external library, and passwords and PINs use PHP's native hashing. Loyalty operations run in a transaction with row locks and leave a trail in the event log. The app can be installed on the phone through a service worker, and everything lives on Hostinger shared hosting.
Technical decisions
- Compiled React plus a PHP API, because shared hosting cannot keep a Node process running but serves static files and PHP.
- Schedule locked with FOR UPDATE before saving a booking, with a collision defined as one start before the other's end, so back to back slots are not a clash.
- Reminders through a WhatsApp link instead of a paid API, because it prevents most no shows with no monthly cost.
- Pure logic tests in a single PHP file that runs on any server without installing anything.
Does your business look like this one?
Barbershops, salons and beauty studios that want to reward loyal clients without paper cards and organize several professionals' schedules.
Frequently asked questions
Who developed Barbearia Lotus?
Barbearia Lotus was developed by André Gomes Andrade, a full stack developer from Carlos Chagas, Minas Gerais, Brazil, at NexiaLabs, from planning to launch.
Where is the client of Barbearia Lotus based?
Barbershop with a loyalty card and per barber scheduling. Brazil.
Which technologies were used to build Barbearia Lotus?
Barbearia Lotus uses React, Vite, PHP 8, MySQL, PDO, JWT, PWA, and Hostinger.
Can you build a similar project for my business?
Yes. Every project is custom built, with code and accounts in the client's name. The first step is a WhatsApp conversation at +55 (33) 98465 6356 to understand what you need.
