Tvoy Master
«Твой мастер» (“Your Master”) is a booking service for solo masters in Russia — nails, brows, lashes, hair, barbers, massage. Clients pick a free slot in a Telegram or MAX bot, the master confirms with one tap, and reminders go out automatically. Neither side installs anything. Free while in open testing.
What it is
Most solo masters take bookings by hand in direct messages: “what about Friday?”, “and 11:30?”, then a reminder they forget to send. Tvoy Master moves that back-and-forth into a bot that knows the master’s schedule.
- Sign-up in the bot. Send
/master: phone, name, first service and working hours in a couple of minutes, and you get a personal page with a QR code for social media, business cards and the mirror at your workplace. - Client booking. The client picks a service and one of the free slots; rescheduling and cancelling also happen in the bot, without calls.
- Notifications and reminders. The master is notified about every new booking and can confirm or decline it in the chat; clients are reminded a day and two hours before the visit.
- Flexible schedule. Working hours with breaks, days off and individual days with their own hours.
- No double bookings. The same time can’t be taken twice, even by two clients booking at the same moment.
- Master’s cabinet. Bookings by day, services, schedule and clients with visit history — as a mini app inside Telegram and MAX or in a browser. Clients who called can be booked by hand.
- Two messengers, one calendar. Clients choose Telegram or MAX on the master’s page; bookings land in a single schedule.
Personal data
Client data is stored in Russia. Each master is the operator of their clients’ personal data and the service processes it on their behalf, as 152-FZ requires; the privacy policy and consent pages are generated from the master’s details. The landing page makes no third-party requests and sets no cookies.
Tech
TypeScript on Node.js 24 with native type stripping, so no build step on the backend. A Fastify API and a bot worker share one conversation engine; Telegram and MAX sit behind a common bot interface with webhooks or long polling. PostgreSQL (Kysely) holds the schedule, and an exclusion constraint rules out overlapping bookings at the database level; notifications go through a transactional outbox, so nothing is sent for a rolled-back change. The master’s cabinet is an Angular app (zoneless, signals) that also runs as a Telegram and MAX mini app, authenticated with the messenger’s signed launch data. Public pages are server-rendered HTML without scripts. Everything ships as Docker images behind Caddy on Russian hosting.