A modern, responsive website for Re Beauty Salon built with React and TypeScript. The salon specializes in hair braiding services (box braids, cornrows, faux locs) and professional lash installations.
- Responsive Design: Fully mobile-friendly with hamburger menu
- Modern UI: Clean, elegant design with nude color palette
- Single Page Application: Smooth scrolling navigation
- Interactive Components: Gallery with lightbox, booking form, hover effects
- Accessible: Semantic HTML5, ARIA labels, keyboard navigation
- SEO Optimized: Meta tags, semantic structure, proper headings
- Color Palette: Nude tones (beige #F5F5DC, brown #8B4513, black #000000)
- Typography: Montserrat font family
- Layout: Component-based architecture with responsive grid
- Animations: Smooth transitions and micro-interactions
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd re-salon- Install dependencies:
npm install- Start the development server:
npm start- Open http://localhost:3000 in your browser.
re-salon/
├── public/
├── src/
│ ├── components/
│ │ ├── Navbar.tsx
│ │ ├── Hero.tsx
│ │ ├── Services.tsx
│ │ ├── Gallery.tsx
│ │ ├── About.tsx
│ │ ├── Contact.tsx
│ │ └── Footer.tsx
│ ├── styles/
│ │ ├── global.css
│ │ ├── Navbar.css
│ │ ├── Hero.css
│ │ ├── Services.css
│ │ ├── Gallery.css
│ │ ├── About.css
│ │ ├── Contact.css
│ │ └── Footer.css
│ ├── types/
│ │ └── index.ts
│ ├── App.tsx
│ ├── index.tsx
│ └── index.css
├── package.json
└── README.md
npm start- Runs the app in development modenpm run build- Builds the app for productionnpm test- Launches the test runnernpm run eject- Ejects from Create React App (one-way operation)
- Navbar: Sticky navigation with hamburger menu for mobile
- Hero: Welcome section with call-to-action
- Services: Service cards with pricing and duration
- Gallery: Image grid with lightbox functionality
- About: Salon information and mission
- Contact: Booking form with salon details
- Footer: Quick links, social media, and contact info
- Box Braids (R500+)
- Cornrows (R300+)
- Faux Locs (R600+)
- Lashes Installation (R400+)
- Address: 123 Beauty Street, Sandton, Johannesburg, 2196
- Phone: +27 12 345 6789
- Email: info@resalon.co.za
- Hours: Mon-Fri: 9AM-7PM, Sat: 8AM-6PM, Sun: 10AM-4PM
-
Frontend:
- React 19 - UI library
- TypeScript - Type safety
- CSS3 - Styling with custom properties
- HTML5 - Semantic markup
- Create React App - Build tool
-
Backend:
- Vercel Serverless Functions - API endpoints
- Node.js - Runtime environment
- Nodemailer - Email delivery
- TypeScript - Type-safe backend
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers
This application is production-ready with a fully functional backend!
Prerequisites:
- Node.js 16+ installed
- Email service account (Gmail or SendGrid)
Deploy in 5 minutes:
- Install dependencies:
npm install-
Choose your email service (pick one):
- Gmail (easiest): Get app password from https://myaccount.google.com/apppasswords
- SendGrid (recommended): Sign up at https://sendgrid.com/ and get API key
-
Deploy to Vercel:
npx vercel- Add environment variables in Vercel Dashboard:
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-app-password
SALON_EMAIL=your-email@gmail.com
- Done! Your salon can now receive bookings online 🎉
- 📖 Complete Deployment Guide - Step-by-step instructions
- 🔑 API Setup Guide - API keys and integrations
- 📧 Email options: Gmail, SendGrid, or custom SMTP
- 💾 Optional: Database storage, SMS notifications, Google Calendar
✅ Working Contact Form - Customers can book appointments
✅ Email Notifications - Both customer and salon receive emails
✅ Vercel Serverless Backend - No separate server needed
✅ Environment Variables - Secure API key management
✅ Error Handling - Graceful error messages
✅ TypeScript Backend - Type-safe API endpoints
# Install dependencies
npm install
# Create .env.local file
cp .env.local.example .env.local
# Edit .env.local with your email credentials
# Run with Vercel dev server (includes API)
npx vercel dev
# Or run React dev server only (API won't work)
npm start- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
Built with ❤️ for Re Beauty Salon
Your salon website now has a fully functional backend!
- ✅ Real booking form that sends emails
- ✅ Customer confirmation emails
- ✅ Salon notification emails
- ✅ Vercel serverless functions (no server to manage)
- ✅ Production-ready and secure
- ✅ Ready to deploy in minutes
Next steps:
- Read DEPLOYMENT.md for deployment instructions
- Check API_SETUP.md for API key setup
- Deploy to Vercel and start receiving bookings!