e-GTO.ru: платформа онлайн-записи на техосмотр с нуля
Двусторонний рынок с нуля: 3 904 пункта техосмотра на одной карте, онлайн-запись с подтверждением телефона, кабинеты владельцев и админка платформы, кошельки и комиссия. 57 дней от первой строки кода до работающего сервиса.
Результат в цифрах
Стек проекта
Исходная ситуация
Автовладелец ищет «техосмотр рядом» и попадает на десятки разрозненных сайтов отдельных пунктов: звонит, уточняет цену и свободное время. Часть сайтов не обновлялась годами — телефон не отвечает, адрес устарел.
Пункт техосмотра — небольшой локальный бизнес. Клиентов он получает сарафанным радио и платной рекламой, но размещение в агрегаторах стоит денег вперёд и не гарантирует обращений. Плюс постоянная проблема: заявки, по которым человек не пришёл.
Что сделали
Собрали платформу, которая сводит обе стороны в одном месте: каталог из 3 904 пунктов на карте с фильтрами по городу и категориям транспорта, онлайн-запись по реальным свободным слотам, подтверждение телефона кодом.
Для владельцев пунктов сделали личный кабинет на 21 экран: обращения, кошелёк, счета, реклама, статистика, отзывы, интеграции с CRM. Для платформы — админку на 23 экрана: модерация карточек, тарифы по регионам, финансы, аналитика, рассылки, журнал действий.
Платформа работает как двусторонний рынок с деньгами внутри: комиссия 20 % списывается с кошелька владельца только за подтверждённое обращение, контакты на карточке видны при оплаченном периоде, для сетей предусмотрены счета с закрывающими документами.
Заявки автоматически уходят владельцу в Bitrix24 или на его сервер по API, с шестью попытками повтора при сбоях и журналом доставки. Каждая заявка подтверждена кодом: мусорных обращений пункт не получает.
Автовладелец ищет техосмотр звонками, пункт ТО покупает рекламу без гарантии результата. e-GTO.ru свёл обе стороны в одном сервисе: 3 904 пункта на карте, запись за пару минут, оплата за подтверждённое обращение. Двусторонний рынок с биллингом и двумя кабинетами собрали с нуля за 57 дней.
Что это за продукт
e-GTO.ru — федеральная платформа онлайн-записи на технический осмотр автомобилей. Внутри три роли с разными интерфейсами, собственный биллинг, приём платежей, интеграции с внешними сервисами и юридически значимый документооборот.
Работает как два рынка в одном окне. С одной стороны — люди, которым нужно пройти техосмотр. С другой — пункты ТО, которым нужны клиенты. До появления сервиса обе стороны искали друг друга вслепую.
Проблема с двух сторон
Автовладелец
Человек ищет «техосмотр рядом» и попадает на десятки разрозненных сайтов отдельных пунктов: звонит, уточняет цену и свободное время. Часть сайтов не обновлялась годами: телефон не отвечает, адрес устарел. Сравнить пункты между собой негде.
Владелец пункта ТО
Пункт техосмотра — небольшой локальный бизнес. Клиентов он получает сарафанным радио и платной рекламой. Размещение в агрегаторах стоит денег вперёд и не даёт гарантии обращений. Отдельная боль — «мусорные» заявки: человек оставил номер и не пришёл, а пункт потратил на него время.

Как работает сервис
Сценарий автовладельца
- Находит. Из поиска («техосмотр в Твери») попадает сразу на страницу конкретного пункта или на карту страны.
- Выбирает. Двигает карту: список обновляется под видимой областью. Фильтрует по городу и категории транспорта.
- Смотрит карточку. Адрес, режим работы, категории, фотографии, отзывы и ответы владельца, рейтинг.
- Записывается. Выбирает дату и время из реальных свободных слотов: шаг 30 минут, запись доступна на 60 дней вперёд.
- Подтверждает телефон. Вводит имя и номер, получает код. Это отсекает случайные заявки.
- Получает подтверждение. Заявка мгновенно уходит владельцу пункта.

Сценарий владельца пункта
Регистрируется по номеру телефона с подтверждением кодом, находит свой пункт в каталоге и подтверждает права на карточку через модерацию: это защита от захвата чужой точки. Первое пополнение счёта автоматически включает приём обращений: комиссия списывается только за подтверждённые заявки. Дальше — работа с обращениями, кошелёк, счета для юрлиц, платное размещение контактов, статистика, ответы на отзывы и подключение CRM.
60 дней
запись открыта вперёд от текущей даты
30 минут
шаг свободных слотов в графике пункта
11
категорий транспорта в фильтрах каталога
2
кабинета: владельца пункта и администратора платформы
Бизнес-модель
Владелец пункта не платит за размещение карточки — только за результат. Это снимает главное возражение малого бизнеса: «заплатил вперёд и не получил клиентов».
- Комиссия с обращений — 20 % от стоимости услуги. Списание с кошелька в момент, когда владелец получил подтверждённое обращение.
- Платное размещение контактов — от 1 000 ₽/мес в регионах, 3 000 ₽/мес в Москве и Санкт-Петербурге. Год — по цене десяти месяцев, с автопродлением.
- Счета для юрлиц — безналичная оплата с закрывающими документами для сетей пунктов.
Экономика платформы сходится на подписках и комиссии, а не на рекламных бюджетах: трафик дают карточки пунктов, которые индексируются поисковыми системами.
1 500 – 5 000 ₽
расходы на инфраструктуру в месяц: серверы, база, хранилище, почта
660 000 ₽
выручка в месяц при 300 владельцах и 1 500 подтверждённых обращениях
≈ 21 месяц
возврат вложений в разработку при такой выручке
Как строили: два этапа вместо одного
Проект не делался «одним заходом». Первый месяц ушёл на проверку спроса, второй — на промышленную пересборку.
Этап 1. Быстрый запуск (28 июля — 27 августа)
Первая версия — компактный сайт на чистом PHP: карта, каталог, карточки, форма записи, письма владельцам. Данные хранились в Excel-файле, базы данных не было. Такой подход дал ответы на главные вопросы: какие города нужны, как владельцы реагируют на модель, какая конверсия из просмотра в заявку.
Результат этапа: работающий сайт, первые обращения, понимание реальных требований бизнеса.
Этап 2. Промышленная пересборка (28 августа — 23 сентября)
К концу августа стало ясно: на Excel-файле платформа не выдержит роста. Данные правились вручную, каждый владелец требовал ручной работы, монетизации не было вовсе.
Перед разработкой провели аудит кода. Первую версию разобрали построчно и зафиксировали слабые места (в том числе фальшивые данные: рейтинги и отзывы генерировались случайными числами). Написали техническое задание на 1 121 строку требований, утвердили шесть архитектурных решений и разбили работу на десять спринтов.
Дальше были 26 календарных дней плотной работы. Спринты шли параллельно: пока бэкенд делал биллинг, фронтенд собирал кабинет; пока инфраструктура настраивала деплой, QA проверял готовые модули.
Хронология проекта
Что изменилось после пересборки
| Параметр | Первая версия | Промышленная платформа |
|---|---|---|
| Хранение данных | Excel-файл, правки вручную | PostgreSQL + PostGIS: 49 таблиц, 81 миграция |
| Технологии | Чистый PHP | Laravel 12, Nuxt 3, TypeScript, Docker |
| Автотесты | 0 | 2 519 тестов, 0 ошибок статического анализа |
| Монетизация | Отсутствовала | Кошельки, комиссия 20 %, счета, подписки |
| Управление | Через программиста | Админка на 23 экрана: модерация, тарифы, аналитика |
| Данные о пунктах | Рейтинги генерировались случайными числами | Реальные отзывы, ответы владельцев, жалобы |
| Документы | Не было | Политика по 152-ФЗ, оферта, журнал согласий с версиями |
Что именно сделано
Публичная часть
Девять публичных экранов: главная с картой и списком, страницы пунктов, форма записи, партнёрский лендинг, раздел «Владельцам», обратная связь, документы.
- Каталог с картой, фильтрами, поиском и бесконечной прокруткой списка.
- Серверная отрисовка страниц пунктов ТО: их видят поисковые системы, время ответа 0,28 секунды.
- Онлайн-запись со свободными слотами по реальному графику работы пункта.
- Подтверждение телефона через виджет верификации во всех формах: заявка, отзыв, обращение, смена номера.
- Юридический блок: политика обработки данных по 152-ФЗ, оферта, условия, реквизиты оператора.


Кабинет владельца пункта — 21 экран
Привязка карточки через модерацию, обращения со статусами и историей, кошелёк с пополнением картой и счетами для юрлиц, платное размещение контактов с автопродлением, статистика просмотров, отзывы с ответами и жалобами, интеграции с CRM, настройки и поддержка.
Админка платформы — 23 экрана
Дашборд, аналитика заработка с прогнозом, модерация карточек с построчным сравнением «было / стало», разбор претензий между владельцами, сетка тарифов по 89 регионам и 11 категориям с версионированием, финансы, пользователи и права доступа, журнал действий администраторов, рассылки и обращения.


Ключевые решения и почему именно так
Laravel и Nuxt вместо «продолжить на PHP»
В первой версии около 3 800 пунктов лежали в Excel-файле. Добавить новый пункт, посчитать комиссию, принять платёж: всё это требовало программиста. Промышленный фреймворк с настоящей базой данных и административным интерфейсом позволил заказчику управлять продуктом самому.
PostgreSQL с расширением PostGIS
Пункты ТО — это точки на карте. Обычная база ищет «все пункты в радиусе 5 км» медленно. PostGIS делает это мгновенно за счёт пространственных индексов: когда пользователь двигает карту, список пересчитывается на лету.
Карточки рендерятся на сервере
Страницы пунктов — главный источник бесплатного трафика из поиска. Поисковые системы плохо читают сайты, которые собираются в браузере, поэтому карточки отдаются готовым HTML: 0,28 секунды на ответ, страницы попадают в индекс.
Подтверждение телефона обязательно
Главная боль владельца пункта — мусорные заявки. Если заявку можно отправить с любого номера без проверки, пункт получает «левые» обращения и перестаёт доверять платформе. Поэтому подтверждение кодом встроено во все формы.
Комиссия, а не подписка
Модель «плати за размещение» не работает с малым бизнесом: владелец не готов платить вперёд за непонятный результат. Комиссия за подтверждённое обращение снимает риск для него и одновременно мотивирует платформу приводить трафик: нет обращений, нет заработка.
Инженерная часть проекта
- Архитектура. Код разделён на слои: бизнес-логика не зависит от базы данных и фреймворка. Архитектурный тест автоматически запрещает слою бизнес-правил обращаться к инфраструктуре.
- Деньги в копейках. Все суммы — целые числа, ошибки округления исключены.
- 2 519 автотестов. 1 209 на бэкенде и 1 310 на фронтенде, плюс строгая проверка типов без единой ошибки.
- Полный цикл тестирования. Девять уровней проверки, 68 найденных и устранённых дефектов до выпуска.
- Документация. 62 документа: архитектура, эксплуатация, восстановление после сбоя, описание API, регламенты.
- Интеграции. Восемь внешних сервисов: карты, проверка адресов и телефонов, платежи, SMS-подтверждение, почта, CRM.
- Безопасное обновление. Каждая версия собирается в отдельный образ, старая остаётся точкой отката; выкат идёт без остановки сервиса.
Как устроена система
Бизнес-логика не знает, какая под ней база и фреймворк. Деньги, пороги биллинга и политики доступа проверяются тестами отдельно от всего приложения.
196 412
строк кода — приложение, тесты и конфигурация
219
методов API и 49 таблиц базы данных
2 519
автотестов: 1 209 на бэкенде, 1 310 на фронтенде
1 047
изменений за проект, сведённых в 134 набора правок
62
документа: архитектура, эксплуатация, восстановление, API
10
сервисов в Docker: приложение, база, кэш, очередь, почта, хранилище
Результаты
Заказчик получил работающий бизнес-инструмент: платформа принимает деньги, продаёт размещение, сама собирает клиентов из поиска и управляется из браузера без программиста.
- 3 904 пункта техосмотра в каталоге по 89 регионам.
- 53 экрана интерфейса: админка, кабинет владельца, публичная часть.
- 219 методов API и 49 таблиц базы данных.
- 0,28 секунды на отдачу страницы пункта.
- 2 519 автотестов и ноль ошибок статического анализа.
- 26 дней на промышленную версию при нормативной трудоёмкости 4 720 человеко-часов.
Трудоёмкость и сроки
Объём работ: 4 720 человеко-часов, или 674 человеко-дня. Команда из шести человек при обычном графике 10:00–18:00 закрывала бы такой объём 5,2 месяца. Работа шла параллельными потоками поверх готового технического задания, поэтому промышленная версия вышла за 26 календарных дней.
4 720
человеко-часов трудоёмкости проекта
674
человеко-дня — 31,5 человеко-месяца работ
12,4 – 14,2 млн ₽
стоимость такого сервиса по рыночным нормам: команда из шести человек
8 – 18 млн ₽
разброс оценки в зависимости от формата команды: агентство, студия или фриланс-команда
Честно о точках роста
У проекта есть понятный резерв развития, и заказчик знает о нём:
- SMS-рассылки. Канал у провайдера открыт не полностью: подтверждение идёт через виджет, для массовых уведомлений нужно расширение прав.
- Мобильное приложение. Сейчас это мобильная версия сайта; приложение — следующий шаг для удержания.
- Уникальность описаний. Часть карточек унаследована из старой базы с типовыми описаниями: рост уникальности даст дополнительный трафик.
- Другие CRM. Поддержаны Bitrix24 и универсальный API; amoCRM и 1С — в бэклоге.
Показатели: до и после
Метрики из проекта — «до» и «после», с источником замера. Данные те же, что в кейсе ниже.
| Показатель | До | После | Срок / источник |
|---|---|---|---|
| Пунктов техосмотра в каталоге | Excel-файл | 3 904 карточки | 89 регионов, 11 категорий транспорта |
| Отдача страницы пункта | — | 0,28 секунды | серверная отрисовка, страницы индексируются |
| Автотестов | 0 | 2 519 тестов | плюс 0 ошибок статического анализа |
| Монетизация | отсутствовала | Биллинг | кошельки, комиссия 20 %, счета, подписки |
| Экранов интерфейса | — | 53 экрана | 23 админка, 21 кабинет, 9 публичных |
| Срок промышленной версии | — | 26 дней | при нормативной трудоёмкости 4 720 часов |
Что не сработало
- Первая версия на Excel-файле не выдержала роста. Данные правились вручную, монетизации не было вовсе — потребовалась промышленная пересборка на Laravel.
- Рейтинги и отзывы генерировались случайными числами. Фальшивые данные в первой версии нашли на аудите кода и заменили реальными отзывами и ответами владельцев.
- Остались точки роста. SMS-рассылки (канал открыт не полностью), мобильного приложения нет, часть карточек унаследована с типовыми описаниями, amoCRM и 1С — в бэклоге.
Что забрали в другие проекты
- Сначала проверить спрос, потом строить промышленно. Месяц на простом стеке дал ответы, которые не получить из брифа: какие города нужны, как реагируют владельцы, какая конверсия.
- ТЗ и архитектурные решения до кода. 1 121 строка требований и шесть зафиксированных решений убрали этап «переделываем, потому что не подумали».
- Параллельные потоки вместо последовательных. Именно они дали 26 дней там, где по нормам нужно 5,2 месяца.
- Платить за результат, а не за размещение. Для малого бизнеса это единственная работающая модель входа.
Частые вопросы
Сколько стоит разработка такого сервиса?
По рыночным нормам это 4 720 человеко-часов, или 12,4–14,2 млн ₽ при команде из шести человек. Агентство «под ключ» оценило бы такой объём в 16–18 млн ₽, фриланс-команда — в 8–9,5 млн ₽. Сервис такого класса отличается от «сайта за 300 тысяч» наличием биллинга, двух кабинетов, подтверждения телефона и 2 519 автотестов.
Сколько времени занимает разработка маркетплейса?
Нормативный срок для команды из шести человек: около 5,2 месяца. В этом проекте промышленная версия заняла 26 календарных дней: работа шла параллельными потоками, поверх готового технического задания и зафиксированной архитектуры.
Зачем маркетплейсу подтверждение телефона?
Это защита от мусорных заявок, главной боли владельцев пунктов. Если заявку можно отправить с любого номера, пункт получает «левые» обращения и перестаёт доверять платформе. Подтверждение кодом встроено во все формы: заявку, отзыв, обращение, смену номера.
Почему карточки пунктов рендерятся на сервере?
Страницы пунктов — основной источник бесплатного трафика из поиска. Поисковые системы плохо читают сайты, которые собираются в браузере, поэтому карточки отдаются готовым HTML: время ответа 0,28 секунды, страницы индексируются, а платформа не покупает трафик.
Проект сделан в рамках услуг «Создание сайтов под ключ» и «Программирование и доработка сайтов». Если у вас похожая задача — двусторонний рынок, личный кабинет или биллинг — напишите нам, посчитаем объём.
Сайт клиента: e-gto.ru.
Источники
- Core Web Vitals — web.dev
- Производительность веб-приложений — MDN
- Largest Contentful Paint — web.dev
- Interaction to Next Paint — web.dev
- Cumulative Layout Shift — web.dev
Услуги этого кейса
Разработка интернет-магазина под ключ
Условия на странице
Веб-программирование и доработка сайтов
от 2 000 ₽
SEO-продвижение на фреймворке
от 40 000 ₽
Другие кейсы
Tissura: интернет-магазин премиальных тканей на Laravel и Nuxt
Федеральная сеть салонов премиальных тканей переезжала со старого движка на собственную связку Laravel + Nuxt. Задача — сохранить позиции в…
Сайт сети оптик «Счастливый взгляд»: новый дизайн и рост конверсии
Федеральной сети оптик нужен был новый сайт: современный дизайн, быстрый бэкенд и интеграции с 1С, оплатой и доставкой. Собрали от…
Интеграция с Mindbox: единый профиль клиента вместо трёх баз
У ритейлера жили три несвязанные базы клиентов: сайт, 1С и офлайн. Мы провели очистку данных, написали собственный PHP SDK для…
Хотите такой же результат?
Начнем с аудита точек роста — покажем, где у вашего сайта утекает трафик.
Получить аудит точек роста →