Physio and chiropractic
Built around courses of treatment
Six sessions booked as one block, with a goal, an end, and a note after each.
$199 one business · $499 unlimited · one payment

Kestrel Physiotherapy — Engine 1.46.4 · physio 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
A course, not six singles
Six sessions,booked as one block.
A plan has a goal in the patient's own words, an end, and dates that move together.
- All of it, or none of it
- One email, with every date
- Move the rest and the others follow
- 3 of 6 done, drawn in strokes
- Where it stands is counted, never typed


Clinical information, on a web page
The desk sees thata note exists.
Its words are for the people the patient is booked with, and the owner.
- Never in an email, a text or a log
- Never on the patient's own page
- Counted for the desk, without a word of it
- In the copy of their data they can ask for
- Gone when their details are erased


Saturday, from the front desk
Plans that wanta word.
One to close, one lapsed, and an insurer's agreement with a single session left on it.
- A time needs a free therapist and a free room
- Three rooms and a gym, each with its turnaround
- What is used of what was covered, counted from the sessions
- Booked past what an insurer agreed, said before the day
- Reports by therapist, room and treatment


Therapists, between two patients
The note is writtenin the room.
Which session of which plan, what the last note planned, and four parts with a number.
- Android and iPhone, one codebase
- Said, found, did, what comes next
- A measure from 0 to 10
- Not before the session has begun



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
$199
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
$499
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 $199 and $499 is $300, once — and no fee per client, ever.
Yours in five commands.