Beauty salon IT department#

I’m helping my wife to open a beauty salon. Since I know nothing about beauty, I’m doing technical part. One essential part of the beauty salon is a public website. It’s purpose is to rank highly in Google for relevant queries and to let people book appointments.

High-level software features#

(based on https://glossgenius.com/)

Client Management:

  • Keep client notes

  • View previous appointment history

  • Send customized messages

Content Management:

  • Description for services with photos and videos

  • Landing pages

  • Marketing pages

Booking:

  • Set appointment slots and working hours

  • Schedule, reschedule, and cancel online (without client app or login)

  • Double booking

  • Gap time

  • Recurring appointments

  • Reminders (SMS and Email)

  • Fill last minute cancellations by keeping a client waitlist

  • Calendar apps integration

Legal and Payments:

  • Stripe integration for payment processing

  • Deposits collection upon booking

  • Sign waiver forms in person and online

  • Put credit card on file for faster checkout

Marketing:

  • SMS & Email Marketing features integrated with books

  • Run custom campaigns

Analytics:

  • Get insights into how new clients discover your business

Frontend components#

Static pages:

  • About (short preface, location, working hours, contact information and form)

  • Services list

  • Per-service pages

Booking wizard:

  • Present a menu of services

  • Fetch booking slots for the chosen service from the booking API

  • Present available days

  • When user picks a day, show available times

  • If the user picks another day, update the times

  • Let the user pick a time slot

  • Ask user for a name, phone, and email

  • Depending on the service configuration, get credit card

  • Submit the booking information to the booking API

Backend components#

Static site generator:

  • Highly customizable (no builtin templates)

  • Fast to build

  • Blazingly fast to serve (asset minification, compression, server proximity)

Booking API:

  • Read service durations from procedures catalog.

  • Two-way integration with external calendars (fetch availability, push new events) both for employees and customers.

  • Exposes available slots for a service as a JSON API.

  • Records appointment submissions.

Customer Relations Manager:

  • Name, phone, email

  • Headshot

  • Records of the past procedures

  • Notes

Email & SMS:

  • Booking confirmations and reminders

  • Cancellation

  • Marketing

Tech stack#

  • Static frontend built with Vite, React, Tailwind, and Jinja templates for granular components and flexibility.

  • FastAPI backend with PostgreSQL database.

  • Single Ubuntu VM to serve the whole thing.

  • Stripe for payments.

  • Google Calendar for appointments booking.

  • Public monorepo on GitHub (because software is not the moat for beauty salon business).