Shair
Hair consultation platform where a guided quiz builds a profile customers share with their salon
Shair replaces the first ten minutes of every salon appointment. Customers answer a guided quiz about their hair, get a profile they can keep up to date, and share it with a professional who already knows what they are working with before the customer sits down.
The problem
Customers struggle to describe their hair type, history and routine, and salons repeat the same intake questions at every visit. Professionals also had no way to keep track of which clients were connected to them and which invitations were still waiting.
What I built
A mobile-first React app backed by a NestJS API. The quiz engine sends invitations and records responses into a hair profile. Customers and professionals connect through an explicit relationship state, and a customer can share their profile with a salon so the professional sees it before the appointment.
Results
- Built and maintained alone across 219 commits in the frontend and backend repositories.
- Went through three rounds of client QA, each with a written test plan covering quiz flow, alerts, asset seeding and questionnaire sync.
- Frontend deployed on Vercel. The API runs in Docker on Dokploy with migrations and a seed command for demo data.
Features
- Guided hair consultation quiz with invitations and saved responses
- Hair profiles with photos and notes
- Connection states between clients and professionals: connected, awaiting you, awaiting client, ignored
- Share a hair profile with a salon or professional
- Salon and professional dashboards with client notes and alert rules
- Email verification and password reset
- Mobile-first layouts tuned for 375 to 428 pixel screens
How it's put together
React and Vite frontend with TanStack Router route groups per role, over a NestJS API with MikroORM migrations on PostgreSQL.
- Separate authenticated route trees for customers, salons and professionals
- File uploads with multer and a seeded asset library
- Transactional email through SendGrid
- Playwright end-to-end tests for the main quiz and sharing flows
Related projects
Web apps2026Church management platform
Multi-tenant church management: members, households, attendance, forms, analytics and WhatsApp messaging
Solo buildNext.jsReactTanStack Query+11
Web apps2026Hotel direct-booking system
Independent hotels
A booking engine a hotel runs on its own domain, with room availability, promo codes and Stripe payments
Solo buildNestJSMikroORMPostgreSQL+9
Mobile apps2026Dube
Offline-first debt book for shopkeepers: an Android app, a sync API and an admin panel
Solo buildExpoReact Nativeexpo-sqlite+15