Сайт услуг с заявками в Telegram и на почту для компании по осушению помещений
- Next.js
- React
- Docker
- Caddy
- Telegram Bot API
- SMTP
- услуг на сайте
- 18
- канала доставки заявки
- 3
- Посетитель
- Форма + согласия
- API заявок
- Журнал + почта + Telegram
- Менеджер
Задача
Компании, которая устраняет последствия заливов, нужен был сайт, вызывающий доверие и приводящий звонки и заявки из поиска. Дополнительное условие: персональные данные хранятся в России, а уведомления о заявках должны быть заметными и не теряться.
Подход
Собрал многостраничный сайт на Next.js с отдельной страницей на каждую услугу, блоком цен и калькулятором. Форма заявки сохраняет данные только при двух отмеченных согласиях и отправляет их в журнал, на почту и в Telegram-бота. Во время запуска нашёл и устранил две скрытые проблемы: права на папку с данными, из-за которых запись молча не работала, и недоступность Telegram с российского сервера — её обошёл релеем на втором сервере.
Что сделано
- Страницы 18 услуг, раздел цен с калькулятором, блог и контакты; микроразметка организации, услуг, вопросов и статей
- 152-ФЗ: два раздельных согласия в форме, проверка на сервере, cookie-баннер, Метрика загружается только после согласия
- Заявка дублируется в три места: журнал на сервере, письмо на почту и сообщение в Telegram-бот компании
- Сервер в России по требованию закона о локализации; для Telegram настроен релей через второй сервер
- Тёмная и светлая темы без мигания при загрузке; проверка мобильной вёрстки на узких экранах без горизонтальной прокрутки
Стек
Next.js и React для сайта, Docker и Caddy на российском VPS, Node.js-обработчик заявок с отправкой через SMTP, Telegram Bot API через релей на втором сервере, микроразметка schema.org.
Результат
Сайт работает в проде на российском сервере. Заявка сохраняется, уходит на почту и приходит в Telegram, а все контакты и реквизиты хранятся в одном файле и обновляются в одном месте.