Launch your own professional barbershop booking system in minutes. Free, open-source, and packed with features.
Real-time analytics with revenue tracking, booking stats, and performance metrics
![]() Bookings Table |
![]() Booking Cards View |
![]() Month View |
![]() Week View (Dark) |
Detailed day view with appointment breakdown
![]() Customer Messaging |
![]() Notifications Panel |
Manage services, employees, hours, and shop settings
Full dark mode support across the entire platform
| Feature | Description |
|---|---|
| 🗓️ Smart Booking | Real-time availability, service selection, employee assignment |
| 📊 Analytics Dashboard | Track revenue, bookings, and customer trends |
| 💳 Stripe Payments | Secure payment processing built-in |
| 🌍 Multi-language | English, German, Turkish, Arabic |
| 🎨 Themes | Light, dark, and luxury themes |
| 📱 Mobile-first | Fully responsive design |
| 🔔 Notifications | Email confirmations + in-app alerts |
| 👥 Employee Management | Staff schedules, assignments, permissions |
| ⭐ Ratings & Reviews | Customer feedback system |
| 💬 Messaging | Shop-to-customer communication |
| 📅 Calendar Views | Hours, days, weeks, months view |
| 🔐 Demo Mode | Built-in demo accounts for testing |
┌─────────────────────────────────────────────────────────────────┐
│ Client (React) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Booking │ │Dashboard │ │ Shop │ │ Auth & User │ │
│ │ Flow │ │ Analytics│ │ Landing │ │ Management │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
└───────┼────────────┼────────────┼────────────────┼─────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ Firebase Services │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │Firestore │ │ Auth │ │ Storage │ │ Functions │ │
│ │ DB │ │ │ │ (Images) │ │ (Email/Stripe) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────┐ ┌─────────────┐
│ Stripe │ │ Mailgun │
│Payments │ │ (Email) │
└─────────┘ └─────────────┘
- Node.js 18+
- Firebase project
- Stripe account (for payments)
- Mailgun account (for emails)
git clone https://github.com/Khanto87/BarbersBuddies.git
cd BarbersBuddies
npm install
cd functions && npm install && cd ..cp .env.example .envFill in your .env:
REACT_APP_FIREBASE_API_KEY=your_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your_project
REACT_APP_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=123456789
REACT_APP_FIREBASE_APP_ID=your_app_id
REACT_APP_STRIPE_PUBLISHABLE_KEY=pk_test_xxx
REACT_APP_GOOGLE_MAPS_API_KEY=your_maps_keyfirebase functions:config:set mailgun.key="your_key" mailgun.domain="your_domain"npm startOpen http://localhost:3000 🎉
BarbersBuddies includes a complete demo data system for testing and screenshots.
# Download serviceAccountKey.json from Firebase Console first
npm run seed # Populate with demo data
npm run seed:clean # Remove demo data| Role | Password | |
|---|---|---|
| Shop Owner | demo-owner@barbersbuddies.com |
DemoOwner2026! |
| Customer | demo-customer@barbersbuddies.com |
DemoCustomer2026! |
The demo includes: 12 barbershops, 200+ bookings, 100+ ratings, message threads, and notifications.
| Layer | Technology |
|---|---|
| Frontend | React 18, TailwindCSS, DaisyUI, Framer Motion |
| Backend | Firebase Functions (Node.js) |
| Database | Firestore |
| Auth | Firebase Authentication |
| Payments | Stripe |
| Mailgun | |
| Storage | Firebase Storage |
| Maps | Google Maps API |
| State | Zustand |
| Charts | Recharts, Tremor |
BarbersBuddies/
├── src/
│ ├── components/ # React components
│ ├── Services/ # API services (Stripe, etc.)
│ ├── utils/ # Helpers (sanitize, logger)
│ ├── hooks/ # Custom React hooks
│ └── store.js # Zustand state management
├── functions/ # Firebase Cloud Functions
├── scripts/
│ └── seed/ # Demo data seeding system
├── public/ # Static assets
└── docs/
└── screenshots/ # App screenshots
Contributions are welcome!
- Fork the repo
- Create your branch (
git checkout -b feature/awesome-feature) - Commit changes (
git commit -m 'Add awesome feature') - Push (
git push origin feature/awesome-feature) - Open a Pull Request
MIT License - see LICENSE for details.
Built with ❤️ for the barbershop community





