Salon and beauty
A finished booking app for salons
A colour needs a patch test 48 hours ahead. This one will not book one without it.
$149 one business · $399 unlimited · one payment

Halcyon Hair Co. — Engine 1.44.8 · salon pack · Full edition
Measured, not estimated
Run the suite yourself the day it arrives.
20
at the same second
35 / 35
checks passing
200 / s
requests sustained
2
code reviews
What you are buying instead of
3–6
weeks of work
$6,000+
at a freelance rate
$0
a month, ever
The thing a salon gets sued over
No colour bookswithout its test.
The page books the test with the colour, or checks the one the salon already holds.
- 48 hours before a colour
- A clear test counts six months
- Both visits booked together, the test first
- Done, clear — or a reaction
- Somebody who reacted is asked to call, never told why


A colour is never one thing
A colour, its tonerand the cut after it.
One appointment, with one length and one price, and one stylist who can do all of it.
- Offered under the service they go with
- Never on the menu alone
- 2 hrs 20 min, £133, one chair
- Untick the colour and its add-ons go
- A junior who cuts is not offered a colour


Saturday, from the front desk
Five columns,thirty-one chairs.
Each appointment as long as it takes, in its stylist's colour, with nothing double-booked.
- The day, or the week
- A sheet for every appointment
- A client's visits, behind and ahead
- Vouchers sold, spent and still owed
- Reports, down to a CSV


Stylists, between two clients
One press,and the colour stops waiting.
A test written down from the chair clears the colour it was booked for, there and then.
- Android and iPhone, one codebase
- Who is next, and what they are having
- Where a colour's client stands
- A quick booking, add-ons included



What arrives
The whole repository.Not a zip of a demo.
- apps/
- webNext.js 16 · the site, the booking flow, the dashboard, the admin console
- mobileExpo 57 · the staff app for iPhone and Android
- packages/
- bookingthe rules engine — pure, no database, no clock, 100% branch coverage
- niche-corethe packs: nouns, feature flags, starting rules, fonts, sample business
- apiHono routes and the query modules behind them
- dbDrizzle schema + 33 numbered SQL migrations
- authBetter Auth, the roles, the permissions, the sign-in rate limits
- emailtemplates and senders: SMTP, Resend, Postmark
- i18nEnglish and Spanish, nine catalogue files each
- jobs · links · storage · abuse · sharedthe tick, signed links, uploads, rate limits, start-up checks
- ui · cms · billing · analytics · monitoringtokens and components, legal copy, subscriptions, Sentry and PostHog
- client/the only folder your project writes in
- src/brand.tsname, logo, icon, link preview, languages
- pack.tsanything you change about the pack
- client.jsoncookie prefix, app scheme, phone app name and icons
- i18n/index.tsreplace any sentence the engine ships
- legal/index.tsyour client's facts, into the five legal pages
- extensions/your own routes and event subscribers
- migrations/your own tables, run after the engine's
- docs/
- compliance/six documents, including the answers to Apple's and Google's privacy forms
- engine/public-api.mdwhat stays stable across releases, and what does not
- CORE-PATCHES.mdevery engine file your project touched, so the next update merges
- UPGRADING.md · CHANGELOG.mdwhat each release needs you to do
$pnpm client:create <slug> --pack barbershop --edition full
A private project from the engine's release branch, with your name on it.
$pnpm dev
Running on your machine in about a minute, with the sample business already in it.
$pnpm verify
Checks, format, lint, types, migrations, doctor and every test. Stops at the first failure.
$pnpm build:web && pnpm --filter web cf:build
A production build, and a Cloudflare Worker from the same source.
$pnpm engine:update engine-v1.3.3
Merges the new release on a branch and prints what changed. Conflicts can only be in files you already recorded.
What it will not do.
Nobody else prints this. We would rather you found out here.
Booking
- No group classes or several people in one slot
- No waiting list for a full day
- No bookings the business approves first
- Customers cannot set up a repeating booking themselves
Money
- No tax, tips, receipts or invoices
- No discounts, promotion codes or gift cards
- No memberships or prepaid packages
- No card on file, and no no-show fee
Customers
- No customer accounts and no “my bookings” page — signed links only
- No tags, merging or importing
- No referrals, reviews or follow-ups
- No marketing email
Reach and platform
- No embeddable widget, because framing is blocked outright
- No structured data for search engines, and no Reserve with Google
- No push notifications on the phone app
- No API keys and no OpenAPI description
One payment.Then it is yours.
You host it. Nothing phones home. Thirty days to change your mind.
Lite
$149
once · This pack.
One business, one booking site.
- Complete source code
- One niche pack of your choice
- Single-business booking site
- Setup guide and documentation
- Twelve months of updates
Full
$399
once · This pack.
Multi-tenant platform with the admin console.
- Everything in Lite
- Many businesses from one install
- Platform admin console
- Business self-sign-up
- A brand folder per business
- Twelve months of updates
All packs
$899
once · All nine packs.
Every niche pack, plus new ones for twelve months.
- Everything in Full
- All nine niche packs
- Every new pack for twelve months
- Priority support queue
The difference between $149 and $399 is $250, once — and no fee per client, ever.
Yours in five commands.