🛠 Технологический стек
Чтобы обеспечить максимальную скорость разработки, мгновенный отклик интерфейса и стабильность в РФ, мы выбрали современный и легковесный стек:
- Frontend: Next.js 16 (с компилятором Turbopack), TypeScript, Tailwind CSS v4.
- Backend: Next.js API Routes (Node.js).
- Автоматизация (боты): Пакет Telegraf (Node.js) — развернуты 2 раздельных бота (клиентский для записи и админский для управления заявками).
- Хостинг: Распределенная гео-архитектура: TimeWeb (РФ) для фронтенда и API + IONOS (США) для бесперебойной работы Telegram-ботов.
- Интеграции: Яндекс.Метрика, SMTP (TimeWeb), REST API для связи между серверами.
📐 Архитектура решения: Географическое распределение
Главная архитектурная особенность проекта — гибридный гео-распределенный хостинг. Из-за сетевых особенностей и блокировок Telegram API на территории РФ, стандартное размещение «всё на одном сервере» привело бы либо к недоступности сайта, либо к падению ботов.
Мы разделили инфраструктуру:
🛑 Ключевые проблемы и их инженерные решения
Проблема 1: Блокировки и сетевой тупик
Ситуация: После тестового деплоя на зарубежный хостинг под защитой Cloudflare сайт в РФ открывался с ошибкой 502 или бесконечно грузился у части пользователей. При этом Telegram-боты требовали стабильного зарубежного IP для работы с Telegram API.
Решение: Мы полностью отказались от проксирования Cloudflare для веб-версии и мигрировали сайт на чистый TimeWeb в российском дата-центре. При этом бэкенд Telegram-ботов оставили на VPS от IONOS (США). Синхронизация данных между сайтом и ботами была настроена через защищенный REST API.
Результат: Сайт мгновенно открывается в РФ без VPN, а боты стабильно держат вебхуки с серверами Telegram.
Проблема 2: Медленный калькулятор (Speed Index)
Ситуация: Сердце сайта — интерактивный калькулятор. На этапе MVP тяжелые исходные изображения силуэтов автомобилей (седан, кроссовер, SUV) весили от 515 КБ до 1.5 МБ. При переключении вкладок была заметна задержка в 1–2 секунды — недопустимо для UX.
Решение:
- Изображения были пакетно оптимизированы через утилиту sips (размеры снизились до 119–220 КБ).
- Внедрен компонент <Image/> из Next.js с флагом priority.
Результат: Рендеринг стал мгновенным, задержки полностью исчезли, а оценка Lighthouse в зоне Performance поднялась выше 95.
Проблема 3: 7 критических багов за 24 часа до релиза
Перед запуском контекстной рекламы мы провели стресс-тест по 47-пунктному QA-чеклисту и выявили пул критических уязвимостей:
- API бэкенда возвращал статус success: true даже при сбое отправки.
- Отсутствовала маска телефона (пользователи путались в форматах и вводили буквы).
- Не было чекбокса согласия на обработку персональных данных (риск по 152-ФЗ).
- При определенных комбинациях в калькуляторе вылетал NaN в итоговой стоимости.
- Отсутствовал сброс параметров и не была подключена аналитика.
Как исправили (за 4 часа интенсивного кодинга):
- Интегрировали react-input-mask для строгого формата +7 (999) 999-99-99.
- Добавили обязательный валидируемый чекбокс политики конфиденциальности.
- Переписали расчетную логику калькулятора с жесткими проверками типов в TypeScript.
- Внедрили Яндекс.Метрику и настроили 5 ключевых микро- и макро-конверсий: calculator_submit, open_form, phone_click, telegram_click, whatsapp_click.
Проблема 4: Риск потери лидов (Dual-Channel система)
Ситуация: Изначально заявки летели напрямую в Telegram-канал администратора через API зарубежного сервера. Если бы на сервере IONOS произошел сбой или сетевой лаг, бизнес потерял бы клиента, за которого уже заплатил в Яндекс.Директ.
Решение: Реализована архитектура дублирования каналов (Dual-Channel). Заявка считается успешной, если сработал хотя бы один метод:
// TypeScript
// 1. Моментальное уведомление в Telegram через API ботов
// 2. Гарантированный бэкап-канал через локальный SMTP TimeWeb
Результат: Достигнута 100% отказоустойчивость. Даже если зарубежный сервер уйдет на обслуживание, заявка упадет на почту и в архив базы данных.
🧮 Интерактивный калькулятор — сердце конверсии
Калькулятор не просто считает сумму, он работает на основе динамической матрицы данных:
- Под капотом база из 25 автомобильных брендов и более 150 моделей.
- Все машины разделены на 4 класса (A/B/C/D) с повышающими коэффициентами: от ×1.0 до ×1.45.
- Предусмотрены кастомные исключения (например, за сложные кузова Range Rover или специфику материалов Tesla заложена автоматическая надбавка +25%).
- Охвачено 7 категорий услуг (керамика, полировка, химчистка, пленки и т.д.) — всего около 40 позиций.
Каждый шаг пользователя прозрачен: он видит реальную стоимость услуг до звонка менеджера. Это отсекает нецелевой трафик и генерирует горячие, прогретые лиды.
Глубокая сквозная аналитика
Для отслеживания эффективности в Яндекс.Метрику передаются не просто факты кликов, а развернутые E-commerce-like параметры. Пример отправки цели при отправке расчета:
// JavaScript
ym(109284242, 'reachGoal', 'calculator_submit', {
total_price: 65000,
services_count: 2,
car_class: 'D',
car_brand: 'Porsche',
car_model: 'Taycan'
});
С помощью Вебвизора и структуры этих целей мы точно видим, на каком этапе калькулятора пользователи сомневаются, какие услуги комбинируют чаще всего и каков средний чек на входе.
📈 Итоги и метрики проекта
Благодаря связке Next.js 16, TypeScript и плотной работе с CLI-агентом Claude Code, нам удалось показать рекордные темпы развертывания продакшн-системы.
Скорость разработки
- MVP (сайт + 2 работающих бота): 3 дня.
- Полировка, QA, закрытие 7 багов и аналитика: 2 дня.
- Итого от пустой папки до старта трафика: 7 дней.
Технические показатели
- Lighthouse Score: 95+ по всем фронтам.
- Время до полной отрисовки (LCP): < 1.5 секунды.
- Оптимизация веса ассетов: Снижение веса графики на 80%.
💡 Главные инсайты кейса
- Разделяй и властвуй: В текущих реалиях гибридная архитектура (Фронтенд в РФ, API-боты за рубежом) — самый дешевый и стабильный способ подружить локальный веб-трафик с зарубежными сервисами без костылей с прокси.
- Отказоустойчивость не стоит дорого: Написание резервного канала отправки через SMTP занимает 30 минут, но гарантирует бизнесу безопасность данных при любых сетевых штормах.
- Современный стек решает: Next.js 16 в связке с Turbopack компилирует проект за 3 секунды вместо привычных 40. Это кратно увеличивает фокус разработчика и скорость итераций, позволяя собирать сложные экосистемы в одиночку за неделю.
Бизнес получил готовую независимую ИТ-инфраструктуру, которая генерирует лиды, автоматически распределяет их по менеджерам и предоставляет полную прозрачность для аналитики рекламы.