A calendar per professional, not per salon
Each professional has working hours, days off and their own list of services. The client picks who they want and only sees what that person does.
Availability per professional, services with different durations, a deposit taken at booking and a reminder the day before.
Salons and barbershops lose money in two places, always the same two: the slot booked twice and the client who does not show up. Both have a technical fix. The first dies when availability is a record in the database, because the second booking simply fails; the second falls when there is an automatic reminder and a deposit taken at the time of booking.
People reach this page looking for
What gets built
Not a feature list. These are the apps people actually describe, and what the platform hands back when they do.
Each professional has working hours, days off and their own list of services. The client picks who they want and only sees what that person does.
A thirty-minute cut and a three-hour colour do not take the same space. Duration belongs to the service, so the grid of available times adjusts itself.
Card at the time of booking, with an amount per service. It is the one thing that genuinely moves the no-show rate, and it lands as a line in your takings.
Automatic email or push before the appointment, and a record for each client with what they have had done, with whom and when.
Included
Database, login, payments and publishing are part of the platform, not a list of services you go and wire up afterwards.
Every screen reads and writes models you can open, query and export. The data is a database of yours from the first minute, not a spreadsheet the app pretends to read.
Email, magic link and Google sign-in, with roles and per-record ownership enforced by Postgres itself. A badly written screen cannot become a leak, because the database answers empty.
Stripe, Pagar.me and Mercado Pago connect once. Card, Pix, boleto and subscriptions, with the card fields rendered by a hosted vault your app never touches.
One project published three ways: your own domain, an icon on the phone straight from the browser, and a signed binary submitted under your own store account.
Titles, metadata, sitemap, structured data and social images are generated with the app. Pages get found instead of only being linked.
Real React, edited line by line or by clicking the element on screen, exported as a ZIP or pushed to your GitHub. No lock-in you have to negotiate your way out of.
How it works
Three steps, and the second one is the one people do not believe until they watch it.
Say what the app does and what it has to remember. No diagram, no schema, no naming a single framework.
Screens, data models, login and payments appear while you read. Anything you do not like, you say so and it changes.
Live on your domain in seconds, with version history behind you. Tuesday's conversation is Tuesday's release.
Start here
This is a complete first message, not a slogan. Paste it, change the nouns to yours, and you have an app to react to instead of a blank page.
Build a booking app for a barbershop with four barbers. Each barber has working hours per weekday, days off, and their own list of services with duration and price; the client picks a service, a barber and a free slot, pays a deposit by card and gets an email confirmation plus a reminder the day before; availability prevents two bookings in the same slot; each barber signs into their own account and sees only their own day, marking a client as served or a no-show; each client has a record with their appointment history; and the owner sees every calendar, revenue per barber and per month, and the no-show rate.
Ready to start from
A template is a working app with data already in it. Open one, make it yours, publish it under your own account.
Class booking for a studio with a hard capacity: credits, a waiting list that moves itself, and a door roster that records who came.
A salon diary where every appointment reserves the turnaround, so a gap on the board is time that can really be sold — and an assistant that says which gaps are worth a call.
Questions
It does, and that is why availability is a data model rather than a drawn calendar. The slot is taken when the record is written, so the second booking fails in the database, which is the only place that can decide it without room for error.
Keep looking
Most apps end up sitting between two categories. Nothing stops you from asking for both in the same paragraph.
Requests, assigned drivers, pricing per route and tracking, with separate sign-up for passengers and drivers.
Classes with limited places, check-in, a training plan per member and a membership billed as a subscription.
Availability per practitioner and per room, patient records, insurance and private pricing, confirmations and reminders.
Grooming appointments, a record per animal, prepaid packages and a reminder for anyone who has not been back.
Job cards, quotes the customer approves, a history per vehicle and a bay schedule.
Registration, a QR-code ticket, check-in at the door, the programme and announcements for people already there.
Availability per professional, confirmation, reminders and check-in — the classic agenda, without the spreadsheet.
Menu, cart, delivery fee by area, payment and order tracking, in your own app and with no marketplace commission.
A QR-code menu, ordering at the table, reservations and a loyalty scheme, without a PDF pretending to be a menu.
Free to start, no credit card. You only pay when you want to publish under your own brand, and you take the code with you if you ever want to.