Most booking apps ask "when?". For some families that's the wrong first question.
TYKHO ("quiet" in Ukrainian) starts with the child: five calm questions decide the right kind of visit, then only the times that actually fit that child are shown. The stylist gets a brief before the child walks in, reminders and cancellations handle themselves, and a freed slot goes to the best-fit family on the waitlist — without a single message from her.
One demo week: 14 bookings confirmed without a message · ~3 h of messaging saved (estimate) · 2 cancelled slots refilled automatically · 0 care questions repeated.
1 · The client
Anna "Anya" Kovalynska(fictional, built as a real client brief) — a solo children's hairdresser in Odesa. One chair, one child at a time: a quiet studio in Arcadia plus home visits along Fontanka Road and in Tairova.
Many of her clients are children who find salons hard: the buzz of clippers, a mirror, a waiting room, being touched without warning. Some are autistic, some are simply sensitive — TYKHO never asks for a diagnosis.
2 · The problem
For parents
Every booking took 10–15 messages before Anya could even open her calendar: Do you have anything quiet? He can't stand clippers. Can we come when no one else is there? Could you cover the mirror?
They had to explain their child again and again.
A "tough morning" meant an awkward cancellation message.
For Anya
Messages ate her day; the phone rang mid-cut while a child in the chair needed all her attention.
Notes lived in chats, times in a notebook — bookings got mixed up.
Every cancellation burned one of the rare quiet slots.
A sick day meant calling every family.
Quirks I designed for (the "client brief")
Quiet hours only on Tue/Wed mornings
High-support visits need a 15-min buffer after them
Some children need a 20-min Meet & Greet before a first cut
Home visits are grouped by district and day
"Tough morning" cancellations are normal, not a failure
Parents re-explain triggers every time
Anya can't answer the phone while cutting
Insight:An open slot isn't always the right slot. The calendar was never the problem — matching the child to the visit was.
3 · Two apps, one system
TYKHO is two installable web apps (no App Store, no account for parents):
For parents — TYKHO: book, move or cancel in one tap. Phone or computer, no login.
For Anya — TYKHO Owner: her day, the briefs, the waitlist. Laptop or phone, installable.
4 · The parent flow
Five calm questions — what makes haircuts hard (sound, touch, mirror, waiting…), how the last cut went, scissors or clippers, where the child is calmest, what helps them settle. No diagnosis, no long form, about a minute.
The gentlest kind of visit, with the "why" — e.g. Quiet First Cut · 60 min · studio during quiet hours · no other guests, with the reasons in plain language and what Anya will prepare (dim lights, scissors only, no mirror).
Only the times that fit — up to three. Busy hours, loud days and slots without a buffer are hidden. Home visits show only the days Anya is in that district.
Booked — with a story for the child — "What will happen", step by step, to read together before the visit. Add to calendar, manage the visit.
One reminder the day before — Yes, we're coming / Move it / Cancel.
None of the times fit? Join the waitlist; you'll get one email when a matching time opens, held for you for 2 hours.
How TYKHO decides (deterministic, explainable):
5 answers → studio or home → quiet or regular hours → scissors or clippers → how long (first visit, breaks, buffer) → only the times that fit this child.
5 · The owner app — what got easier for Anya
for Anya
Before: Mornings started with 30 messages → With TYKHO: her whole day on one screen — who, which visit, confirmed or not
Before: The same questions to every mum → With TYKHO: a brief for every child, built from the parent's answers: avoid, use, prepare, parent note, first 5 minutes
Before: "Will they remember tomorrow?" → With TYKHO: reminders go out on their own; not confirmed? one tap sends a nudge
Before: A cancellation meant an empty chair → With TYKHO: the freed time is offered to the best-fit family on the waitlist, automatically
Before: A sick day meant calling every family → With TYKHO: take a day off → one tap asks those families to pick a new time; nothing is cancelled
Before: Mum calls — Anya writes it on paper → With TYKHO: "Book for a family" — the same five questions, on her phone
Before: "What worked last time?" → With TYKHO: one note after the visit; the next visit starts there
Before: A paper diary → With TYKHO: two weeks at a glance
Before: "Did I send her the address?" → With TYKHO: an Outbox of every email sent for her
Before: Prices and hours in her head → With TYKHO: services, prices, quiet hours, home-visit days — the calendar follows them
Before: New families found her by chance → With TYKHO: a QR poster for the studio mirror
6 · The waitlist, end to end
The moment I'm proudest of — and the one I almost faked.
Ella's mum finds none of the three times fit → joins the waitlist.
Mila's mum has a tough morning → cancels in one tap.
TYKHO checks everyone waiting for that kind of visit: Ella ✓ quiet first cut, studio, quiet hours; Mark ✗ wants a regular visit; Artem ✗ needs a home visit in Tairova. Best match: Ella, 3 of 3.
Ella's mum gets one email — "A quiet time just opened for Ella", held for 2 hours.
She taps Take this time → booked.
Anya's day shows Mila cancelled · Ella took this time — she didn't send a single message.
If nobody answers within 2 hours, a scheduled job passes the slot to the next matching family. "Not this time" passes it on immediately.
7 · Design
One calm blue, frosted glass, shape over colour. A monochrome palette in tonal steps — nothing flashing, soft contrast — for children (and parents) who are sensitive to light, noise and surprises.
Light and dark themes from day one, tested side by side; parents and Anya keep separate theme preferences.
Manrope, large tap targets, calm motion, reduced-motion respected, keyboard and screen-reader labels.
Copy speaks as Anya, warm and short: "Tough morning? Moving is free and takes a minute."
A design system and styleguide came first, before any booking screen.
8 · How it's built
How it's built
Lovable for the app; Lovable Cloud (Postgres) for data.
No double booking at the database level — an exclusion constraint, not just a UI check.
Row-level security: parents never read other families' data; the owner role is enforced on the server.
Server-validated slots — the same rules (quiet hours, buffers, districts, days off) live in database functions.
Scheduled jobs for reminders, offer expiry and a nightly demo reset.
Transactional email on the studio's own domain (confirmation, reminder, nudge, waitlist offer, "visit moved", day off).
Two installable PWAs, offline-friendly day view for Anya.
9 · Proof before decoration — what testing changed
I tested every flow end to end, as a parent and as Anya, and found buttons that only pretended:
"Join the waitlist" led to the normal booking form — no one could actually join. → A real waitlist: database function, confirmation email, private "leave the waitlist" page, and Anya sees who's waiting.
"Send a nudge" only showed a toast. → It now sends a real email and shows "Nudge sent — waiting for Olha".
Day off only said "message the families". → One tap emails each family a link that opens the move screen directly.
"Not this time" left the slot empty. → It now passes the slot to the next matching family.
A security review: every finding checked by hand rather than "fix all".
10 · Results (one demo week)
14 bookings confirmed without a single message
~3 h of messaging saved (estimate)
2 cancelled slots refilled automatically
0 care questions repeated
11 · What's next
Push notifications only for the rare things that truly need Anya
Waitlist preferences by day and time; waitlist expiry
Owner-configurable days off; going live for a real studio (remove the demo clock and nightly reset)
12 · TYKHO Care — full walkthrough
full walkthrough
Credits & notes
TYKHO Care, Anna Kovalynska, the studio and the families are fictional; the studio photo is AI-generated. The app, the data flows and the emails are real and working.
For Test:
1. Be a parent (no login). Open https://tykhocare.com on your phone → "Start the comfort check" → answer for a made-up child → pick one of the times → enter your real email. You'll get the confirmation email with a "Manage visit" link (reschedule / cancel in one tap). None of the times fit? Tap "Join the waitlist".
2 · Be Anya (owner). https://tykhocare.com/owner/login — email: usertestanya@gmail.com · password: Anya0508. Your booking is already in her day with a brief built from your answers. The envelope icon (Outbox) shows every email the system sent. "…" → Services & hours: prices, hours, a day off. "…" → Studio QR poster.
3 · Try the waitlist. Cancel your visit from the email ("Manage visit") → if the freed time fits a family on the waitlist, Anya's Outbox shows the "A quiet time just opened" offer that went to them — no call from Anya needed.
Tip: both sides install as separate apps (TYKHO / TYKHO Owner) — Chrome ⋮ → Install app, or Safari → Share → Add to Home Screen. Demo data resets every night. While signed in as Anya, you can also restore it yourself: "…" → Reset demo data.
Built with Lovable for the #lovablechallenge (Lovable × Contra).