Barbershops often coordinate bookings, walk-ins, barber availability, and cash across disconnected chats and manual notes. That makes the next customer and the current operational state harder to see.
How I fixed it
I designed Gilir as one role-aware workflow for owners, cashiers, barbers, and customers. The public preview connects booking and walk-in intake to a live queue, barber schedules, checkout, and daily reporting.
What it can do
Online booking and walk-in intake
Live queue management
Barber schedules and availability
Role-based workspaces
Cash checkout workflow
Daily operational reports
The stack that shipped it
Next.js keeps the product and server routes together, while Supabase provides Postgres, authentication, and Row Level Security for a multi-role system.
What changed
Gilir is live as a public product preview and demonstrates the complete operating loop without claiming production payments or user adoption.
What I learned
Building a multi-tenant operational product reinforced that authorization, status transitions, and recovery paths matter more than surface feature count.