← Все кейсы

КЕЙС · САЙТ, БОТ И СОЦСЕТИ С НУЛЯ

19 страниц, 74 теста и Telegram-бот — сайт нового филиала с нуля

Новый филиал студии «Живой пар» в Саратове открывался с помещением и оборудованием, но без единой точки в интернете. Собрал сайт, запись через Telegram-бота и соцсети — и по пути честно поймал баг, который чуть не засыпал владельца ложными заявками.

Wellness-услугиNext.js + TypeScriptTelegram-бот74 юнит-теста
КлиентНовый филиал франшизы «Живой пар»
НишаWellness / паро-ионная капсула
Что делалСайт, Telegram-бот, VK-сообщество
СтекNext.js 16, TypeScript, Tailwind 4
ФорматРазработка + маркетинг, соло
Коротко

За один заход собрал сайт на 19 маршрутах с записью, конструктором сертификатов и Telegram-ботом, покрыл его 74 юнит- и 129 сквозными тестами — и в процессе поймал баг, из-за которого собственные тесты чуть не начали спамить владельцу студии фальшивыми заявками. Реклама ещё не запущена, поэтому в кейсе — не цифры трафика, а то, что было сделано и как.

О ПРОЕКТЕ

Новый филиал без единой точки в интернете

«Живой пар» — паро-ионная капсула и тренажёр «Синусоида» на ул. Зарубина в Саратове, франшиза с запатентованной технологией. К моменту обращения у студии было помещение, оборудование и открытие на носу — и ни сайта, ни соцсетей, ни единого канала для записи.

КОНТЕКСТ

Кроме оборудования — ограничение, с которым нельзя спорить

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

Разбираться пришлось не только с текстом. Договор франшизы и переписка с владельцем — единственные источники правды: юриста на проекте нет, значит формулировки нужно было проверять самому и закладывать это ограничение не в дизайн, а в код — чтобы будущий редактор сайта не мог случайно его нарушить.

КЛЮЧЕВЫЕ РЕШЕНИЯ

Сайт, бот и соцсети — от нуля до первой записи

1

Собрал сайт на Next.js, а не на конструкторе

19 маршрутов, весь текст бизнеса — в одном конфиге: телефон, цены, вопросы-ответы и мессенджеры меняются в одном месте и обновляются везде, без похода по компонентам.

2

Зашил юридическое ограничение в код, а не в договорённость на словах

Отдельный автотест сканирует запрещённые слова в статьях при каждом запуске тестов, а не только перед запуском сайта. Так формулировка «не медицинская услуга» не потеряется, даже если текст будет менять кто-то другой.

3

Настроил запись и конструктор сертификатов

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

4

Спроектировал приём заявок так, чтобы нельзя было соврать клиенту

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

5

Сам съездил и отснял пространство

Все фото — из помещения на Зарубина, а не стоковые интерьеры. На сайте так и написано: чужих фото и чужих залов здесь нет.

6

Поднял сообщество ВКонтакте и бота-персонажа с нуля

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

7

На мобильном — не десктоп в миниатюре, а своя панель

Главное действие сайта — «Записаться», и на телефоне до него не нужно долистывать: внизу экрана закреплена отдельная панель «Позвонить / Записаться», доступная с любой точки страницы.

ЧЕСТНО О ПРОЦЕССЕ

Тесты чуть не начали спамить владельцу студии

Сквозные тесты (Playwright) реально нажимают кнопку «Отправить заявку» на живом сайте — это единственный способ проверить, что форма работает от начала до конца. Настраивая прогон, поймал момент: тестовый сервер по умолчанию подхватывает `.env.local` с боевыми ключами Airtable и Telegram-бота.

Без вмешательства каждый прогон тестов создавал бы в рабочей таблице студии десятки записей «Проверка формы» и слал владельцу уведомления в Telegram — то есть свой же инструмент контроля качества превратился бы в спам-бота по его личному чату.

Поймал это до того, как тесты стали гонять по-настоящему: вынес прогон в изолированное окружение с пустыми ключами. Теперь `npm run e2e` — это 129 проверок вхолостую, а не 129 фальшивых заявок в боевой базе.

ГЛАВНЫЙ ЭКРАН

Конкретика вместо банного клише

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

Главный экран сайта «Живой пар» с ценами и записью
1. Главный экран — цена и запись видны сразу, без прокрутки
Модальное окно записи с выбором канала связи
2. Модалка записи: звонок, Telegram, MAX, ВКонтакте или заявка — на выбор гостя
Реальное уведомление о заявке с сайта в Telegram
3. Тестовая заявка «Тест Мятный» — уведомление реально дошло в Telegram, с деталями сертификата
Бот-персонаж Парниша отвечает на вопросы в Sender
4. Бот-персонаж Парниша в Sender — отвечает на вопросы и записывает на сеанс

РЕАЛЬНЫЕ ФОТО, НЕ СТОК

Пространство, каким его увидит гость

Галерея реальных фото студии: капсула, парная зона
5. Съёмка на месте, на Зарубина — без покупных интерьеров
Пошаговый сценарий визита на сайте
6. Весь визит расписан по шагам — от знакомства с пространством до окончания сеанса
Блок цен: разовое посещение, курс, парный формат
7. Цены сразу видны: разово, курсом или вдвоём — без скрытых условий
Пост ВКонтакте про технологию с фото основателей
8. Сообщество ВКонтакте: карусель про технологию и её создателей — с нуля, включая монтаж

ЧТО ИЗМЕНИЛОСЬ

Было / стало — без цифр трафика, которых пока нет

Рекламу ещё не запускали — студия временно на паузе из-за переезда. Поэтому здесь не выдуманный ROI, а то, что реально изменилось к моменту запуска.

Каналы записи
Было: 0
Стало: 4 — форма на сайте, Telegram, MAX, ВКонтакте
Фото в интерьере
Было бы: стоковые фото
Стало: 0% стока — все фото сняты лично на месте
Защита юр. формулировки
Было: держится на договорённости на словах
Стало: автотест на каждый прогон, а не только перед запуском
Ложные «заявка отправлена»
Было бы: возможны при сбое
Стало: архитектурно исключены — Airtable как источник правды
Покрытие тестами
Было: 0
Стало: 74 юнит- + 129 сквозных теста
Готовность к рекламе
Было: аналитики нет
Стало: Метрика, Вебмастер и индексация настроены заранее

Дальше в планах — реклама в Яндекс.Директе и работа с блогерами: студия временно на паузе из-за переезда на новое место, следующий этап начнётся после открытия.

ЗАБРАТЬ СЕБЕ

Если строите похожий проект — вот с чего начать самому

Эти форматы — не про студию «Живой пар», а про то, что я могу проверить в вашем проекте.

ЧЕК-ЛИСТ

12 признаков, что подрядчик не тестирует сайт перед сдачей

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

Получить в Telegram
ЭКСПРЕСС-АУДИТ

Разбор вашего сайта или рекламного кабинета

Смотрю, где теряются заявки: от текста и структуры до того, что происходит с формой при сбое.

Что входит в аудит
КОНСУЛЬТАЦИЯ

15 минут на разбор именно вашей задачи

Без презентаций и обязательств — говорим по делу, дальше решаете сами.

Записаться

ЗАПИСАТЬСЯ НА КОНСУЛЬТАЦИЮ

Соберу сайт и соцсети под новое открытие

Бесплатная консультация 25 минут · без обязательств