← Все кейсы

Кейс · 2026 · сайт + CRM салона

Своя
CRM

Сайт-визитка с онлайн-записью и админ-CRM салона — без подписки. Вы внутри кейса, собранного из самого сайта: та же сетка, те же кнопки, тот же монохром.

24/7
приём онлайн-записей
1 клик
повторная запись клиента
Telegram
уведомления администратору

Задача

Онлайн-запись и CRM салона — без подписки и чужой инфраструктуры

Hair Atelier — салон красоты в Минске. Обычно запись и клиентскую базу салоны арендуют у сервисов вроде YCLIENTS или DIKIDI: абонентская плата, чужие серверы, платные SMS-рассылки.

Мы собрали полностью самописную платформу: публичный сайт-визитку с пошаговой онлайн-записью и админ-CRM с календарём, клиентами, финансами и собственной системой сообщений. Весь код, база и Telegram-боты живут на одном VPS клиента — без посредников и абонентки.

Брендбук

Монохром как решение

В палитре салона нет ни одного цветного оттенка — только уголь, три серых и бумага. Нажмите на цвет: покажем, где он работает в виджете онлайн-записи.

Единственный «цвет» бренда. Не чистый чёрный, а мягкий уголь: заголовки, основная кнопка, пройденные шаги записи, двухпиксельная линия под шапкой. Всё, что важно и что нажимается, — угольное.

Вторичный текст: подписи-разрядка над заголовками, роль мастера, пояснения. Иерархия строится не цветом, а шагом серого.

Третий план: вторая строка логотипа в хиро, цена и длительность услуги, номера будущих шагов. Серый вместо акцентного цвета: интерфейс остаётся фоном и ни с чем не спорит.

Границы карточек в 1px, сетка 48×48 на фоне хиро, аватары с инициалами, неактивные шаги. Никаких теней и скруглений — только линия, как разметка на выкройке.

Фон и «воздух». Белый лист, на котором уголь читается как типографика в журнале; он же — текст на угольных кнопках и инверсия карточек при наведении.

123

Выберите мастера

АСАнна СветловаТоп-стилист
Женская стрижка80 BYN · 60 мин
10:0010:3011:0012:3014:3015:00
Далее — ввести данные
Cormorant Garamond Light

Логотип. Тонкая антиква в разрядку рядом с ромбом-знаком — единственная засечка на сайте, поэтому имя салона ни с чем не спутать.

Hair Atelier
Space Grotesk

Заголовки и крупные цифры: номера 01–03, цены, время записи. В монохроме главный акцент — кегль: заголовок хиро набран в 96 px. Кириллицу подхватывает системный гротеск из того же стека.

Salon · Minsk · 2024
DM Sans

Интерфейс: кнопки, навигация, подписи. Прописные 10–12 px с широкой разрядкой — как бирка на одежде.

Онлайн-запись

Записаться — и посмотреть, что внутри

Форма работает как на сайте салона: выбирайте мастера, услугу и время. Справа — что в этот момент делает система.

Выберите мастера

Шаг 1 · Что происходит в системе

Список мастеров — из базы салона

Активные мастера подтягиваются из админки. Если клиент пришёл с карточки мастера или из сообщения «Повторить запись?», мастер и услуга уже выбраны через параметры ссылки — шаг пропускается.

Услуги — Анна Светлова

Шаг 2 · Что происходит в системе

Только услуги этого мастера

Мастер привязан к услугам в админке, и у каждого может быть своя цена: топ-стилист дороже джуниора. Правило в CRM простое — цена мастера, иначе базовая цена услуги.

Выбрана услугаЖенская стрижка60 мин

Время

Шаг 3 · Что происходит в системе

Конфликтное время выбрать нельзя

Слоты по 30 минут строятся из графика мастера на конкретную дату. Из них вычитаются занятые записи и блок-слоты (обед, перерыв) с учётом длительности услуги. Если слот успели занять, форма вернёт на выбор времени.

Мастер
Анна Светлова
Услуга
Женская стрижка
Время
14:30

На сайте здесь имя, телефон и комментарий. В кейсе ничего вводить не нужно — нажмите кнопку и посмотрите, что увидит администратор.

Шаг 4 · Что происходит в системе

Запись — в календарь и в Telegram

Запись создаётся со статусом «Ожидает подтверждения» и появляется в календаре админки. Администратору приходит сообщение в Telegram; подтвердить, отменить или закрыть запись можно кнопками прямо в чате.

Каталог

Наши услуги салону

Прайс-лист с сайта, только вместо стрижек и цен — состав проекта: что входит в платформу и чем оно измеряется.

Публичная часть

Онлайн-запись

Мастер → услуга → дата и время → контакты; предвыбор через ссылку

/booking
4 шага
в составе
Каталог услуг

Категории, цены, длительность — из базы

/services
из базы
в составе
Магазин и школа

Витрина бьюти-товаров и курсы салона с записью

/shop · /school
2 раздела
в составе
Личный кабинет

Вход по телефону, свои записи, ответы на сообщения салона

ближайшая запись · сообщения
по телефону
в составе

Админ-CRM

Календарь

Недельная сетка по мастерам, цветовые статусы, приём оплаты в модалке записи

09:00–21:00
30 мин
в составе
Клиенты

История визитов, заметки мастера, предпочтения: аллергии, окрашивание

карточка клиента
CRM
в составе
Финансы

Выручка за период с разбивкой по способам оплаты, мастерам и услугам

наличные · карта · онлайн
3 способа
в составе
Мастера и графики

Индивидуальные цены, расписание по датам, блок-слоты, привязка к Telegram

отпуск · частичный день
по датам
в составе

Сообщения и Telegram

Повторная запись

После визита клиенту автоматически приходит вопрос «Повторить запись?»

вместо SMS-маркетинга
1 клик
в составе
Опросы и акции

Администратор пишет вопрос с вариантами ответа — вручную или из шаблона

библиотека шаблонов
шаблоны
в составе
Бот для админов и мастеров

Подтвердить, отменить или закрыть запись кнопками в чате; мастер видит только свои

grammy · инвайт-ссылки
2 роли
в составе
Пуш о новых записях

Поллер бота проверяет базу и шлёт уведомление

отдельный сервис
30 сек
в составе

Под капотом

Next.js 16 + Prisma 5

App Router, Route Handlers, типизированная схема на 17 моделей

React · Tailwind CSS
41 API
в составе
PostgreSQL 16

Своя база в Docker-томе, бэкапы pg_dump по cron

только внутренняя сеть
своя БД
в составе
Docker Compose

db, web и bot; схема применяется автоматически при деплое

nginx + Let’s Encrypt
3 сервиса
в составе
Авторизация

JWT в HttpOnly-cookies — отдельно для админа и для клиента; пароли админов — bcrypt

jsonwebtoken · bcryptjs
2 секрета
в составе

Команда

Кто работает в системе

КЛ

Клиент

Сайт и личный кабинет

Записывается в любое время, видит ближайшую запись и её статус, отвечает на сообщения салона прямо на главной — без мессенджеров.

Путь записи
АД

Администратор

Админ-CRM и Telegram

Ведёт журнал записей, клиентскую базу и финансы, рассылает вопросы клиентам. Новые записи и ответы приходят в Telegram.

Экраны CRM
МА

Мастер

Telegram-бот

Подключается по одноразовой инвайт-ссылке, видит только свои записи и сам подтверждает, отменяет или отмечает их выполненными.

Состав проекта
Журнал записей — админ-CRM Hair Atelier
Журнал записейСверху — записи, ждущие подтверждения, с быстрыми кнопками. Ниже — сетка по мастерам с 30-минутными слотами, статусами и перерывами.
Клиентская база — админ-CRM Hair Atelier
Клиентская базаТелефон, количество визитов, сумма, последний визит; поиск по имени или телефону. В карточке — история, заметки мастера и предпочтения.
Мастера и графики — админ-CRM Hair Atelier
Мастера и графикиРабочие дни выбираются в календаре, время — индивидуально по каждой дате: отпуск, частичный день, обед.
Дашборд — админ-CRM Hair Atelier
ДашбордЗаписи на сегодня, ожидающие подтверждения, на неделе и всего; лента последних записей и быстрые ссылки.

Сообщения от салона

Своя замена SMS-маркетингу

Так сообщение выглядит на главной у авторизованного клиента. Ответьте — карточка свернётся, как на сайте.

Hair Atelier

Повторить запись к мастеру Анне на «Окрашивание»?

01
Приходит само

Системное сообщение создаётся через заданное число дней после визита. Одновременно у клиента только одно такое — без спама.

02
«Да» — и запись готова

Ответ сразу ведёт к новой записи с тем же мастером и услугой. Ответы видны в разделе «Сообщения» и приходят администратору в Telegram.

03
«К Анне», а не «к Анна»

Имена склоняются библиотекой petrovich с собственным детектором пола: Илья и Никита не превращаются в женские имена.

~72
страницы и компонента
41
API-эндпоинт
17
моделей в схеме базы
3
сервиса в Docker: db, web, bot

Результат

Запись работает,
абонентка — нет

У салона — собственная платформа вместо арендованной: сайт принимает записи круглосуточно, администратор и мастера управляют ими из календаря и из Telegram, а повторная запись приходит клиенту сама и оформляется в один клик. Код, база и боты — на одном VPS клиента, без подписки и посредников.

Хотите такой же результат?

Обсудим задачу, рассчитаем стоимость и сроки. Первый разбор — бесплатно.

Обсудить проект →
Следующий кейс4TEAMИнтернет-магазин + 1С