Tutoring and music
Term-based lesson scheduling
One hour a week for a whole term, booked in one press, with half-term left out.
$149 one business · $399 unlimited · one payment

Ash Grove Music School — Engine 1.60.2 · tutoring 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 term, not twelve bookings
One hour a week,for the whole term.
Every date of the term is shown before anything is committed, then booked in one press.
- The same tutor, the same hour
- Half-term left out
- 7 weeks at £24 — £168
- A free hour is free on every week left
- Carried into the next term unless they say no


What happens between two lessons
The note goes home,and comes back ticked.
Each thing to practise has seven days under it, and the tutor sees the count before the next lesson.
- What we did, and up to eight things
- A thing at nought is in red
- Shared once, to that child's family only
- A first name and a year — nothing else
- Never a text, and never to the child


Tuesday, from the front desk
Three cards that appearonly when they must.
Notes still to write, make-ups still to book, and the statements somebody is behind on.
- A day's notice earns a make-up, two a term
- Told later, it stays on the statement
- A tutor away always gives one
- One statement a family, paid in three parts
- Nothing is cancelled by the app itself


Tutors, in the teaching room
Lesson 5 of 12,and what was played.
The tutor opens the lesson, reads last week's practice counted, and writes today's before the next student.
- Android and iPhone, one codebase
- The term at a glance, day by day
- Up to eight things to practise
- Sent once, to the parent



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.