MarketplaceBeauty and wellness

Appointments App

Give a salon a website that looks like a fashion title and books like a front desk. Clients choose a studio, a service and a person, then see only the times that are really free. The team runs the day from one back office: calendar, appointments, clients, payments, reviews and reports, across every location.

Get this app
  • Included with the Starter and Pro plans
  • An exact copy of the whole application
  • Frontend, backend and data included
  • Yours to keep and change in your own repository
  • Multilanguage, for whatever country you need
Home page hero with one headline and a booking button
Home page hero
public pages
8
back office sections
11
backend workflows
15
data tables
9
booking steps
5
Made for
  • Hair salons, barbershops, nail bars, beauty studios, spas and massage rooms
  • Businesses with one location or several
  • Teams where clients choose a specific person
  • Agencies rebranding for a client
Every screen

See it the way clients and staff do

A website that opens like a magazine

  • Full-screen hero with one headline and a booking button
  • Studio cards with photo, address and opening hours worked out from the real hours
  • Service menu with category tabs: the large photo changes with the category
  • Team section, client reviews, and questions answered from your booking rules
Home page hero with one headline and a booking button

1 / 7Home page hero with one headline and a booking button

How an appointment moves

From booked to reviewed

An appointment can also be cancelled or marked as a no-show. Finished ones can't be changed again, so a visit can't be paid twice.

  1. Pending
  2. Confirmed
  3. Completed
  4. Reviewed
Confirm step for a service that needs a deposit
What you get

The whole application, one to one

Public website

  • Home
  • Booking
  • Sign in
  • Create account
  • Forgot password
  • Reset password
  • My appointments
  • Profile

Back office

  • Dashboard
  • Calendar
  • Appointments
  • Services
  • Staff
  • Clients
  • Payments
  • Reviews
  • Reports
  • Locations
  • Settings

Backend

  • 15 workflows for accounts, the catalog, availability, appointments, reviews and the back office
  • 9 tables: users, locations, services, staff, appointments, payments, reviews, settings, password reset tokens

Technology

  • React 18, Tailwind CSS 4, shadcn-style components, Lucide icons
  • Passwords stored as hashes; sign-in uses signed tokens
  • Back office data requires a team account
  • Password reset emails sent through Resend
In the back office

Change it without touching code

  • Business name, deposit policy and booking rules
  • Every location
  • Every service and team member
In the code

A quick edit for a full rebrand

  • The hero headline and subtitle
  • The section headings and the footer line
  • The service categories
  • The currency and the site's page title
  • All the photography
Setting it up

Eight steps to your own salon site

You will need

  • A Ubex account, where the app's workflows and tables run
  • A Resend account with a verified sending domain, for the password reset emails
  1. Add the secrets the workflows use: JWT_SECRET, and for password reset emails RESEND_API_KEY and EMAIL_FROM. APP_URL is optional and sets the address used in the email link.
  2. Verify a sending domain with Resend. Without it the app still works, and the forgot password page says that email is not set up.
  3. Set the app's address in the allowed origins of the workflows. If the workflow addresses change when the project is copied, update them in the app's API file.
  4. Create the first owner: register an account, then set its role to admin in the users table.
  5. Remove the demo users, studios, staff, services, appointments, payments and reviews.
  6. Enter the business details in Settings, then add locations, services and the team.
  7. Add team logins in Settings.
  8. Publish the app on a subdomain or custom domain.
Good to know

What it doesn't do

Better to know now than later. You can add any of this yourself: the code is yours to change.

  • No online paymentNo card capture, payment links or online deposits. Clients pay at the studio and the team records it. A “refund” is a record in the app: no money moves.
  • No booking emails or textsConfirmations, reminders and review requests are not sent. The only email is the password reset link.
  • Pending appointments stayThey are not released automatically: staff confirm or cancel them. Each client can hold up to 3 pending appointments.
  • One visit, one serviceNo waiting list, recurring appointments, group bookings or several services in one booking.
  • No rooms or chairsAvailability is based on people, not on resources.
  • No staff-only viewEvery team member sees the whole back office, not only their own diary.
  • No outside calendar syncIt doesn't sync with calendars such as Google or Outlook.
  • No photo uploadsTeam members appear with their initials, and site photos are set in the code.
  • Fixed categories and tagsService categories are a fixed list: Hair, Barber, Nails, Skin & Face, Massage, Packages. Client tags can be filtered and shown, but not edited in the app.
  • One currencyOne currency (euro) per app.
  • Local clock time onlyTimes are shown and stored as the studio's local time, with no conversion between time zones. “Minimum notice” is measured against UTC.
  • No loyalty or packagesNo loyalty points, gift cards, packages of visits or staff commission.
  • Reviews come from clientsOnly reviews left after a completed appointment. There is no way to add others.
  • Back office for desktop and tabletIt is not designed for phones. The client side is.

Everything in these screens is made up: SalonFlow, its studios, addresses, phone numbers and email addresses, its clients, staff, appointments, payments, revenue figures and reviews. The photos are placeholders from Unsplash. They are not part of the app, so replace them with your own.

Let clients book your team online

Get an exact copy, put your name on it and make it yours.