← Projects

Tvoy Master

Status: in progress

«Твой мастер» (“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.

Tvoy Master landing preview: the headline «Онлайн-запись к мастеру — в Telegram и MAX» next to a bot chat where a client picks a 10:00 slot and gets a manicure booking confirmation
Booking happens right in the chat with the bot

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.