A modern React Native/Expo mobile application connecting customers with barbers for on-demand and scheduled grooming services.
- Barber Discovery - Map-based barber search with real-time availability
- Advanced Filters - Filter by rating, price, distance, availability, newcomers
- Barber Profiles - View portfolio, reviews, services, and pricing
- Service Booking - Select services, date, time, and location (home or salon)
- Real-time Chat - Negotiate prices and communicate with barbers
- Booking Management - Track confirmed and pending bookings
- Live Tracking - Track barber en route to your location
- Profile Management - Edit profile, upload avatar, manage addresses
- Dashboard - View earnings, ratings, and availability stats
- Request Management - Accept/decline incoming service requests
- Schedule View - Timeline-based booking calendar
- Earnings Analytics - Track revenue by day/week/month
- Portfolio Gallery - Showcase work with image uploads
- Service Pricing - Manage services and set prices
- Working Hours - Configure availability schedule
- Online/Offline Toggle - Control when to receive requests
- Authentication - Email/password, Google, Apple, Phone sign-in
- Onboarding Flows - Separate flows for customers and barbers
- Real-time Updates - Supabase Realtime subscriptions
- Location Services - GPS location, reverse geocoding
- Image Handling - Camera/gallery picker with cloud storage
- Dark Theme - Full dark mode UI throughout
| Layer | Technology |
|---|---|
| Framework | React Native 0.81 + Expo 54 |
| Navigation | Expo Router 6 (file-based) |
| Language | TypeScript 5.9 |
| State | Zustand + TanStack Query |
| Backend | Supabase (PostgreSQL + Auth + Storage + Realtime) |
| UI | NativeWind (Tailwind) + Gluestack UI + React Native Paper |
| Maps | React Native Maps |
| Animations | React Native Reanimated 4 |
- Stripe/PayPal Integration - Process payments securely
- In-app Wallet - Store credits, tips, refunds
- Split Payments - Deposit now, pay remainder on arrival
- Subscription Plans - Monthly unlimited haircuts for premium users
- Barber Payouts - Automated weekly/monthly payouts to barbers
- Recurring Bookings - Schedule weekly/monthly appointments
- Waitlist System - Join waitlist when barber is fully booked
- Dynamic Pricing - Surge pricing during peak hours
- Multi-barber Bookings - Book multiple services from different barbers
- Group Bookings - Book for family/friends in one session
- Push Notifications - Booking reminders, offers, status updates
- SMS Notifications - Fallback for critical alerts
- Video Consultation - Pre-booking video chat for style discussions
- Voice Messages - In-chat voice notes
- AI Style Recommendations - Upload photo, get haircut suggestions
- Demand Forecasting - Predict busy times for barbers
- Fraud Detection - Identify fake reviews/accounts
- Smart Matching - ML-based barber recommendations
- Multi-location Support - Barber shops with multiple locations
- Team Management - Shop owners manage multiple barbers
- Inventory Tracking - Track products used per service
- Loyalty Programs - Points system, referral bonuses
- Gift Cards - Purchase and redeem digital gift cards
- Background Checks - Verified barber profiles
- Insurance Integration - Service insurance for home visits
- GDPR Compliance - Data export, deletion requests
- Audit Logging - Track all sensitive operations
- Google Maps Integration - Replace basic maps with full Google Maps
- Live Location Sharing - Real-time barber tracking on map
- Route Optimization - Show best route for barber to customer
- Geofencing - Auto-notify when barber is nearby
- Heatmaps - Show popular areas for barbers to position themselves
- 3D Building View - Help barbers find exact apartment/floor
- Skeleton Loading - Better loading states throughout
- Pull-to-Refresh - Refresh data with gesture
- Haptic Feedback - Vibration on important actions
- Gesture Navigation - Swipe to accept/decline requests
- Voice Search - "Find a barber near me"
- AR Try-On - Preview hairstyles using AR camera
- Dark/Light Toggle - User-controlled theme switching
- Accessibility - VoiceOver/TalkBack support, high contrast mode
- Video Portfolios - Short clips showcasing work
- Before/After Gallery - Transformation photos
- Specialization Badges - Verified skills (fades, beards, etc.)
- Social Proof - "X people booked this week"
- Availability Calendar - See open slots at a glance
- Comparison View - Compare multiple barbers side-by-side
- Express Booking - One-tap re-book previous service
- Smart Suggestions - "Based on your history, try..."
- Service Bundles - Discounted package deals
- Time Preferences - Learn preferred booking times
- Buffer Time - Auto-add travel time for home visits
- Cancellation Flow - Easy reschedule, not just cancel
- Reviews with Photos - Attach result photos to reviews
- Barber Stories - Instagram-style temporary posts
- Follow Barbers - Get notified of new availability
- Share Profiles - Deep links to barber profiles
- Community Feed - Local barber/style discussions
- Referral System - Share & earn credits
- Quick Replies - Pre-set responses in chat
- Translation - Auto-translate chat messages
- Read Receipts - Know when messages are seen
- Typing Indicators - Real-time typing status
- Media Sharing - Send reference photos in chat
- Voice/Video Calls - In-app calling
- Offline Mode - Browse cached barbers without internet
- Image Caching - Faster load times for portfolios
- Lazy Loading - Load images as they scroll into view
- Optimistic Updates - Instant UI feedback
- Progress Persistence - Resume incomplete onboarding
- Skip Option - Complete profile later
- Animated Tutorials - Explain key features
- Permission Explanations - Why we need location/notifications
- Bottom Sheet Improvements - Smoother snap points
- Tab Bar Badges - Unread messages count
- Floating Action Button - Quick book from anywhere
- Breadcrumbs - Show navigation path in modals
- Micro-animations - Button press, card flip, etc.
- Gradient Accents - More visual depth
- Custom Icons - Branded icon set
- Empty States - Illustrated empty states with actions
- Error States - Friendly error illustrations
- In-app Ratings - Rate after each booking
- NPS Surveys - Periodic satisfaction surveys
- Help Center - Searchable FAQ
- Live Chat Support - In-app customer service
| Service | Purpose |
|---|---|
| Google Maps Platform | Maps, Places API, Directions |
| Stripe | Payments, Connect for barber payouts |
| Twilio | SMS notifications, voice calls |
| SendGrid | Email notifications |
| OneSignal/Firebase | Push notifications |
| Sentry | Error tracking |
| Mixpanel/Amplitude | Analytics |
| Intercom | Customer support chat |
| Cloudinary | Advanced image processing |
| Stream | Scalable chat infrastructure |
| Agora | Video/voice calling |
| Veriff/Onfido | Identity verification |
# Install dependencies
npm install
# Start development server
npm start
# Run on iOS
npm run ios
# Run on Android
npm run android
# Run on Web
npm run web
# Type check
npx tsc --noEmit
# Lint
npm run lintEXPO_PUBLIC_SUPABASE_URL=your_supabase_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
GOOGLE_MAPS_API_KEY=your_google_maps_key
STRIPE_PUBLISHABLE_KEY=your_stripe_keyget-barber/
├── app/ # Expo Router screens
│ ├── (auth)/ # Authentication screens
│ ├── (tabs)/ # Customer tab screens
│ ├── (barber-tabs)/ # Barber tab screens
│ ├── (modals)/ # Modal screens
│ └── (onboarding)/ # Onboarding flows
├── src/
│ ├── components/ # Reusable components
│ ├── features/ # Feature modules
│ ├── stores/ # Zustand stores
│ ├── services/ # API services
│ ├── hooks/ # Custom hooks
│ ├── constants/ # Theme, mock data
│ ├── types/ # TypeScript types
│ └── utils/ # Utility functions
└── supabase/
└── migrations/ # Database migrations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details.