МаркетплейсLaravel, Vue и Т-Банк · 2023–2025
Tvoyprazdnik
Маркетплейс праздничных услуг: ведущие, артисты, фотографы, торты и площадки с бронированием по дням и часам
Праздник здесь собирают как корзину: ведущий на субботу, фокусник на 15:00, торт к 12:00. Онлайн платится 15%, остальное исполнители получают на месте. Дизайн был готовым, всё остальное сделала наша команда. Я вёл проект: разбирал с заказчиком сценарии, ставил задачи, принимал работу и часть кода писал сам.
Ведущий на свадьбудемо-исполнитель · Москва · 5 ч
Декабрь 2026цена дня
19 декабря, суббота · 95 000 ₽
16:00–18:00 занято другой позицией этого исполнителя
Предоплата 15% онлайн14 250 ₽
Исполнителю на месте80 750 ₽
- 709
- страниц каталога в карте сайта, 10 городов, на 15 октября 2026
- 15%
- предоплата онлайн, остальное исполнителю на месте
- 66
- экранов админки: заказы, возвраты, модерация, контент
- 18
- месяцев от первого коммита до SEO-аудита, 1362 коммита
Как шла работа
Я вёл проект, команда писала код
Заказчик описывал, как должна работать площадка, я превращал это в задачи с номерами от TP-2 до TP-160, ставил их разработчикам и принимал работу. Где быстрее было поправить самому, правил сам. Через полтора года площадка умела всё, что нужно маркетплейсу: от регистрации исполнителя до письма с просьбой оставить отзыв.
- ЯОбщение с заказчиком, требования, задачи, приёмка, настройка деплоя, часть правок в коде
- КомандаВёрстка по готовому дизайну, бэкенд, кабинеты, админка, интеграции
- ДизайнБыл готов до старта разработки, мы его не делали
- Ноябрь – декабрь 2023Репозиторий и автодеплой, регистрация, вход через VK ID, база регионов и городов, город по IP.
- Январь 2024Мастер объявления: описание, позиции, цены.
- Февраль 2024Календари исполнителя, страница бронирования, корзина.
- Март 2024Чат, избранное, мои заказы и отзывы.
- Май 2024Фильтр по дате, теги в категориях, блок «Вам может быть интересно».
- Июнь 2024Блог с лайками и его админка.
- Сентябрь 2024Эквайринг Т-Банка и предоплата.
- Октябрь 2024Новый личный кабинет.
- Декабрь 2024Письма о заказе, напоминание о предоплате, сжатие фото до загрузки.
- Февраль 2025Цели Метрики, новые шаги мастера объявления.
- Март 2025Автоотмена неоплаченных броней, отмены системой в админке.
- Апрель – май 2025SEO-аудит: адреса со словами, теги в каталоге, карта сайта, YML для Яндекса, заголовки безопасности.
Бронирование
Цена дня и свободные часы
У каждой позиции базовая цена, цены по дням недели и цены на конкретные даты, поэтому в календаре у каждого дня своя цифра. Занятость общая на все объявления исполнителя: бронь одной позиции закрывает эти часы и для другой. Покрутите настройки: всё считается по тем же правилам, что на сайте.
Декабрь 2026нажмите на день
19 декабря, суббота
95 000 ₽цена Пт–Сб
можно начатьзанятовне графика
Бронь на 16:00 длится 2 часа и ещё час перерыва: заняты 16:00, 17:00 и 18:00.



Жизнь брони
Бронь сама напоминает, торопит и просит отзыв
Как только бронь создана, сервис ставит в очередь всё, что должно случиться дальше. Сроки зависят от того, сколько осталось до праздника: чем ближе дата, тем короче поводок.
Праздник длится 5 часов. Шкала идёт от момента брони до часа после праздника.
- Исполнителюнапомнить подтвердить бронь через 6 и через 12 часов
- Если нет предоплатычерез 2 дня после брони срабатывает автоотмена
- Клиентунапоминание за 12 часов до начала
- После праздникачерез час после окончания просьба оставить отзыв
Деньги
15% онлайн, остальное исполнителю
Предоплата и есть доход площадки, остальное исполнитель получает сам. Платёж идёт через Т-Банк: свой клиент API, каждый запрос подписан токеном SHA-256 из полей и пароля терминала, в чеке одна строка «Предоплата бронирования». Когда клиент возвращается с оплаты, сервер сам спрашивает у банка состояние платежа.
Можно оформить и без онлайн-оплаты, «на месте». Тогда после подтверждения исполнителем клиенту уходит письмо с просьбой внести предоплату и ещё одно через шесть часов.
Кто и когда отменяет
Правило: предоплату возвращают, если отменил исполнитель или клиент отменил больше чем за 72 часа до начала. Решение по заявке принимает администратор.
SEO
Каталог сам растит посадочные страницы
Город, категория и тег дают адрес, заголовок и title страницы. Название города склоняется библиотекой morphos, поэтому «в Набережных Челнах», а не «в Набережные Челны». В карту сайта попадают только сочетания, где в этом городе есть живые услуги: карта пересобирается раз в неделю и растёт вместе с исполнителями.
- Адрес
/catalog/krasnoiarsk/prazdniki-dlya-vzroslykh/vedushchie/tag-vedushchie-na-svadbu- H1
- Ведущие на свадьбу в Красноярске
- Title
- Ведущие на свадьбу в Красноярске – Tvoyprazdnik
- В карте сайта
- да, в Красноярске есть такие услуги
Наличие в карте сайта взято из живого sitemap.xml на 15 октября 2026. Страницы с фильтрами и пагинацией закрыты noindex, у страниц каталога свой canonical.
Страницы каталога в карте сайта по городам
709 страниц, из них 542 посадочные по тегам. Для Яндекса каждую ночь собирается отдельный YML-фид на город: в московском сейчас 55 предложений, в красноярском 49.
Цель Метрики, которую браузер не видел
- Банк возвращает клиентаСервер сверяет платёж с банком и перенаправляет дальше: сам браузер в этот момент ничего не отправляет в Метрику.
- Сервер ставит цель в очередьВ базу пишется цель «успешная предоплата» для этого пользователя.
- Следующая страница её отправляетПодвал сайта забирает неотправленные цели, вызывает reachGoal и помечает их отправленными.
Чат
Договориться до брони, но не в обход площадки
Кнопка «Задать вопрос» в карточке открывает чат с темой: исполнитель сразу видит, о какой услуге речь. Сообщения приходят вживую через Pusher, непрочитанные раз в полчаса уходят письмом. Правило площадки: до оплаты контакты не передаются. Администратор видит все переписки и может поправить сообщение, исходный текст сохраняется в журнале модерации.
Вопрос по услуге «Фокусник на праздник»
- Можно шоу для детей 7 лет?
- Можно. Напишите мне напрямую: +7 900 000-00-00Можно. [контакты скрыты модератором]
- Понял, оформлю бронь на сайте.
Было: «Можно. Напишите мне напрямую: +7 900 000-00-00»Под капотом
Мелочи, на которых держится площадка
- ФотоВ браузере сжимаются до отправки, до 15 штук на позицию. На сервере поворачиваются по EXIF и сохраняются в WebP до 1024 пикселей плюс превью на 300.
- ГородОпределяется по IP через DaData. Поисковым ботам сразу Москва без запроса, а если города нет в базе, берётся столица региона. Выбор живёт в cookie полгода.
- ВходПочта с подтверждением по ссылке или VK ID в один тап. Заблокированного пользователя не пускает ни один из входов.
- ОчередиПисьма, напоминания и отмены уходят отложенными задачами. Раз в полчаса проверка непрочитанных, раз в неделю карта сайта, каждую ночь фиды для Яндекса.
- КаталогФильтры по дате, цене и длительности, сортировка по цене, рейтингу и отзывам, дерево категорий в три уровня с тегами.
- КабинетОтдельное приложение на Vue: мастер объявления в пять шагов, календарь занятости, заказы, чат, отзывы.
Админка
66 экранов, чтобы площадка жила без программиста
Админка на Orchid: заказы и неоплаченные брони, заявки на отмену и возврат, модерация объявлений, чатов и отзывов, регионы и города, дерево категорий с SEO-полями, теги, блог, слайды и тексты главной. Снято на локальной копии с выдуманными пользователями.

Регистрации по дням, объявления, бронирования и финансы площадки.

Все заказы с фильтрами по статусу брони и оплаты: от «Создан» до «Отменён системой».

Неоплаченные брони с короткой ссылкой на оплату: администратор может отправить её клиенту сам.

Модерация объявлений: редактируются, на модерации, опубликованы, скрыты, по каждому городу.

Бронь целиком: время, предоплата и остаток на месте, связь с обеими сторонами, отмена с причиной.
Сайт и кабинеты
Готовый дизайн, собранный в работающий продукт
Слева рабочий сайт, справа демо-копия с выдуманными исполнителями и рисованными обложками: каталог, тег-страница на телефоне и кабинет исполнителя.







Что я вынес из проекта
Площадка работает: tvoyprazdnik.com. Кабинеты и админка на этой странице сняты на локальной копии с выдуманными данными.
- Правила денег решаются до кода.Кто возвращает предоплату, в какой срок и кто ставит точку: это разговор с заказчиком. Записанные правила одинаково легко переносятся в код и в инструкцию на сайте.
- SEO растёт из данных.Посадочные страницы появляются там, где есть услуги, и уходят вместе с ними. Список не нужно вести руками.
- Маркетплейс живёт, пока никто не смотрит.Напоминания, сроки оплаты, письма о непрочитанных: половина работы площадки происходит в очереди задач.
Давайте знакомиться
Хорошие проекты
начинаются
с разговора.
Нужен технический партнёр, помощь команде или решение для рабочего процесса? Расскажите, что хотите изменить — обсудим, чем я могу помочь.
@work_ilyaЛично мне в Telegram