Inspiration
Hair salons often juggle multiple tasksโmanaging appointments, customer profiles, services, staff, and product sales. However, most CRM solutions on the market are either too generic or too expensive for small to mid-sized salons. We were inspired to build a tailored Hair Salon CRM All-in-One Mobile App that streamlines salon operations with a seamless blend of CRM, POS, and eCommerce functionalitiesโall powered by Vendureโs robust API.
What it does
Our app is an all-in-one mobile solution for hair salon owners and staff. It enables:
- ๐
Appointment Booking with time-slot management and staff assignment
- ๐งโ๐คโ๐ง Customer Relationship Management with profiles, preferences, and visit history
- ๐ Service Management including categories, prices, and durations
- ๐งด Product Sales & Inventory integration via POS and eCommerce
- ๐ต POS Integration with walk-in checkout, order history, and payment tracking
- ๐ Dashboard & Reports with sales data, bookings, and performance metrics
- ๐ Multi-language Support (e.g., English, Vietnamese) for a broader audience
How we built it
Tech Stack:
- Frontend: React Native + Expo + Nativewind + ShadCN
- State Management: Zustand + React Query
- Form Handling: React Hook Form + Zod
- Type Safety: GraphQL Codegen with TypeScript
- Backend: Vendure (Headless eCommerce API) with custom plugins for:
- User roles (Stylist, Admin, Front Desk)
- Booking system
- Service management
- POS API endpoints
We designed the app with mobile-first usability in mind, making it fast and intuitive for staff to navigate even during peak hours.
Challenges we ran into
- ๐งฉ Customizing Vendure for booking and service management was complex and required plugin development.
- ๐ Multi-role authentication and permissions had to be built carefully to separate admin and stylist views.
- ๐ฑ UI optimization on mobile devices for different roles and flows (e.g., quick bookings, fast checkout).
- ๐ Real-time sync between bookings, product inventory, and POS without performance issues.
Accomplishments that we're proud of
- โ Seamlessly integrated a complete booking + CRM + POS system into a single mobile app.
- โ๏ธ Developed custom Vendure plugins for appointment and stylist management.
- ๐จ Created a beautiful and functional mobile-first UI using ShadCN and Nativewind.
- ๐ Built real-time analytics and reporting dashboards for salon owners.
- ๐ Delivered a secure and scalable architecture with multi-role support and clean API integration.
What we learned
- Vendure is powerful and flexible, but customizing it for non-eCommerce workflows (like bookings) requires a strong understanding of its plugin system.
- Combining POS and CRM features into one mobile app is feasible but requires careful UX decisions and state management.
- GraphQL Codegen and TypeScript saved us countless hours by enabling safe and predictable API interactions.
What's next for Hair Salon CRM All in one
- ๐ Multichannel Support for mobile, in-salon POS, and online bookings
- ๐
Calendar Sync with Google Calendar / Apple Calendar
- ๐ฌ In-app Chat between customers and stylists
- ๐ง AI Recommendations for upselling products or suggesting new services
- ๐ PWA/Desktop Admin Panel for managing from any device
- ๐ Integration with external accounting systems (e.g., QuickBooks, Xero)
- ๐ช Marketplace Module for salons to list and sell their own products online
Built With
- react
- shadcn
- tailwind
- tanstack
- typescript
- vendure
- zod
- zustand
Log in or sign up for Devpost to join the conversation.