Идея: сервис бронирования для экспертов
Всё началось с простой мысли — сделать платформу для записи к экспертам. Что-то вроде Calendly, но "адаптированное под российский рынок" (спойлер: я не знал, что это значит). Юристы, психологи, консультанты, коучи. Люди выставляют слоты, клиенты бронируют — казалось очевидным.
Назвал проект expert-booking.ru. Выбрал TypeScript full-stack — знакомый стек, где я мог двигаться быстро. Насколько быстро — станет ясно позже, когда я обнаружу, что пролетел мимо цели на скорости звука.
Стек expert-booking.ru: Node.js + Express, React 18 + Vite, PostgreSQL + Knex.js, TypeScript, Docker, YooKassa (заглушка), Feature-Sliced Design на фронте.
Первая версия: идеальный код для несуществующих пользователей
Погрузился в разработку с энтузиазмом хирурга, готовящегося к сложнейшей операции. Код рос. Функционал расширялся. Архитектура совершенствовалась. В итоге получилась полноценная платформа для людей, которых я ещё не встретил:
Backend (~1,600 строк кода):
- 14 миграций базы данных (users, experts, bookings, payments, reviews, support tickets)
- 12 модулей API (auth, bookings, payments, admin, analytics, UTM tracking)
- Заглушка для интеграции с YooKassa
- JWT-авторизация с ролями (client/expert/admin)
Frontend (~31,000 строк кода):
- Полнофункциональная админка с аналитикой
- Дашборд для экспертов с календарём и статистикой
- Система бронирований с подтверждением оплаты
- Feature-Sliced Design с ESLint-валидацией архитектуры
- Адаптивный интерфейс на Tailwind CSS
Инфраструктура:
- Docker Compose для локальной разработки
- Nginx + SSL для production
- Скрипты автоматического деплоя
- Redis для кеширования сессий
Технически всё работало безупречно. Можно было запускать. Я даже написал 21-страничную маркетинговую стратегию с планом выхода на ₽1M месячной прибыли за 18 месяцев — документ, который никто никогда не прочитает, кроме меня самого в приступе тихой грусти.
Проблема: когда платформа была готова, я завис. Как космонавт, идеально подготовленный к полёту, но забывший построить ракету.
Завис не на коде — на маркетинге и бизнес-составляющей.
Стратегия выглядела красиво на бумаге (в PowerPoint — ещё красивее):
- Этап 1: Привлечь 20 экспертов, сделать 100 консультаций
- Этап 2: Масштабироваться до 100 экспертов, 1000 консультаций в месяц
- Этап 3: Запустить реферальную программу, B2B-направление
- Этап 4: Географическая экспансия, AI-рекомендации (потому что в 2024 без AI нельзя)
Но когда дело дошло до первого шага — найти этих 20 экспертов — я понял, что составил идеальный план покорения Эвереста, ни разу не выходя из дома.
Кому это продавать? Как находить экспертов? Как убедить их бросить работающий Calendly или телеграм-бот? Какую вообще боль я решаю? Оказалось, что единственная реальная боль — моя собственная, от осознания масштабов самообмана.
Главная ошибка: Я написал 32,600 строк кода и 21-страничную маркетинговую стратегию под воображаемых пользователей. Не поговорил ни с одним экспертом перед стартом разработки.
Попытка номер два: или как я наступил на те же грабли, но в Python
Через несколько месяцев решил попробовать снова. На этот раз всё будет по-другому:
Что изменилось (в теории):
- Платформа: FastAPI вместо Node.js — потому что знакомый молоток делает все проблемы похожими на гвозди
- Название: slot-me.ru — короче, запоминается проще (всё ещё никто не запоминал)
- Стратегия: сначала найти хотя бы 3-5 реальных пользователей, потом писать код
Перешёл на FastAPI, потому что Python — это моя зона максимального комфорта. Вместо борьбы с ESLint, валидацией FSD-архитектуры и конфигурацией монорепозитория я мог сосредоточиться на... правильно угадали, снова на архитектуре.
Главное изменение: Начал с разговоров, а не с кода. Опросил нескольких знакомых экспертов: что используют для записи, какие проблемы возникают, сколько готовы платить, готовы ли попробовать новый сервис прямо сейчас.
Главный урок: код — это 5% проекта (но я написал все 100%)
Разработка slot-me заняла... намного больше времени, чем я планировал сказать в этой статье.
Если честно, я снова ушёл в код. Не на неделю, а на месяцы. Не на MVP, а на production-grade платформу. Но на этот раз хотя бы с другой мотивацией — теперь я знал, что обманываю себя, но продолжал это делать осознанно.
Что сделано в slot-me:
- FastAPI backend (196 тестов, 56% покрытие)
- React frontend с Feature-Sliced Design
- 27 миграций базы данных
- OAuth через Google и Яндекс
- Интеграция с Google Calendar и Яндекс.Календарь
- Email-уведомления (SMTP/SendGrid)
- Система напоминаний с APScheduler
- CI/CD pipeline с автодеплоем
- Production-конфигурация с Nginx и мониторингом Sentry
11 этапов разработки, все завершены. MVP готов на 100%. Пользователей готово на 0%.
И вот честное признание, которое больно признавать: дело было даже не в деньгах. Речь шла о том, чтобы довести до выкладки в интернет что-то своё — для самоутверждения. Чтобы показать себе (и, чего уж там, портфолио), что я могу.
Я не искал клиентов. Я играл в РПГ под названием "Архитектура проекта". Как в Factorio, только с реальным кодом: попробовать FastAPI вместо Node.js, настроить OAuth через два провайдера, написать 196 тестов с 56% покрытием. Вместо гипотезы "людям это нужно" — челлендж "я умею это сделать без legacy".
И знаете что? Это было неплохое развлечение. Как компьютерная игра, где ты прокачиваешь навыки, пробуешь новые технологии, строишь идеальную архитектуру без давления продакшна и legacy-кода. 11 технических документов, автоматические бэкапы, health checks — всё это было не мучительной прокрастинацией, а осознанной игрой в "создание идеального продукта".
Проблема только одна: я назвал эту игру "стартапом".
Но на этот раз я понял главное: код — это не более 5% успеха проекта.
Остальные 95% — это:
- Поиск реальных пользователей (не воображаемых)
- Валидация идеи — действительно ли проблема существует?
- Маркетинг — как люди узнают о сервисе?
- Продажи — как убедить попробовать?
- Поддержка — как удержать тех, кто уже начал пользоваться?
Я искал где светло, а не где потерял. Писал код, потому что это понятно и комфортно. Но избегал самого важного — разговоров с людьми, холодных звонков, тестирования гипотез на реальной аудитории.
Ловушка разработчика: Легко уйти в написание идеального кода, потому что это зона контроля. Маркетинг, продажи, общение с незнакомыми людьми — некомфортно. Но без этого продукт мёртв.
Архитектурная прокрастинация как искусство
Посмотрите на цифры из первого проекта:
- Backend: 1,600 строк — разумно для MVP
- Frontend: 31,000 строк — это уже не MVP, это симфония самообмана
Почему так много? Потому что я превратил архитектурную прокрастинацию в высокое искусство:
- Настроил Feature-Sliced Design с жёсткой валидацией слоёв (для несуществующей команды)
- Написал ESLint-правила для запрета deep imports (для себя одного)
- Создал полную админку с дашбордами и аналитикой (графики с нулевыми показателями выглядят особенно грустно)
- Реализовал UTM-трекинг и систему маркетинговых кампаний (чтобы отслеживать трафик, которого нет)
- Добавил реферальную программу (пользователи смогут приводить других пользователей, которых тоже нет!)
Всё это до первого пользователя. Как построить аэропорт в пустыне и ждать, когда самолёты сами прилетят.
Но если честно, это было весело. Feature-Sliced Design с валидацией слоёв — интересная архитектурная задачка. UTM-трекинг и маркетинговые кампании — попробовать технологию, которую раньше не использовал. Реферальная программа — почему бы и нет, если уже пишешь всё остальное?
Это не классическая прокрастинация разработчика. Это осознанная игра в архитектуру. Sandbox-режим разработки, где можно экспериментировать с технологиями без давления дедлайнов, легаси и реальных пользователей. Factorio для программистов.
Что дальше: кладбище надежд и production-сервер
Сейчас slot-me развёрнут в production. Работает бесперебойно. Тесты зелёные (196 из 196). CI/CD настроен. Мониторинг Sentry бдительно следит за... тишиной.
Количество реальных пользователей: 0.
Потому что я до сих пор не начал искать их. Платформа готова принять тысячи пользователей. Инфраструктура выдержит нагрузку. Но вместо пользователей — только я, периодически логинящийся, чтобы убедиться, что всё ещё работает.
Вот в чём главный парадокс моего театра одного актёра:
Я написал систему напоминаний, которая педантично отправляет email за 24 часа, 1 час и 15 минут до встречи. Но встреч нет. Система напоминает пустоте о пустоте.
Я настроил OAuth через Яндекс и Google, чтобы пользователи могли войти одним кликом. Но некому кликать. Красивая дверь в пустой дом.
Я написал 11 технических документов, описывающих архитектуру, deployment, мониторинг. Единственный читатель — я сам, когда забываю, как это всё работает.
Я делаю это для себя — чтобы доказать, что могу. Это терапия через код. Но это не бизнес.
Реальность: Все фичи, которые я описывал как "запросы пользователей" — я их сам себе придумал. Напоминания, дашборды, интеграции с календарями — всё это мои собственные гипотезы о том, что может быть нужно.
Настоящая работа начинается сейчас: найти первого человека, который готов попробовать. Не "персону из Customer Journey Map", не "ключевую аудиторию 28-45 лет с доходом ₽80,000-300,000/мес", а живого человека — с именем, телефоном, реальной проблемой и готовностью дать мне пять минут своего времени.
Выводы
Что я понял за два проекта:
-
Код — это 5%, остальное — бизнес и люди. Можно написать 32,600 строк безупречного кода, но если никто им не пользуется — это просто хобби-проект.
-
Не ищи где светло, ищи где потерял. Разработчики часто избегают некомфортных задач (маркетинг, продажи) и уходят в код. Это тупик.
-
Работай с реальными, а не воображаемыми людьми. Пять разговоров с потенциальными пользователями дадут больше инсайтов, чем месяц проектирования в вакууме.
-
Выбирай знакомый стек для MVP. TypeScript full-stack с FSD-архитектурой — отличный выбор для продакшена, но для первой версии важнее скорость итераций. 31,000 строк фронтенда в первом проекте против нескольких сотен в минималистичном интерфейсе второго.
-
MVP — это не про неделю разработки. Это про неделю, чтобы дать что-то в руки реальным людям и получить обратную связь. А дальше начинается настоящая работа.
-
Маркетинговая стратегия на бумаге ≠ реальность. Можно расписать план на 21 страницу с метриками, этапами и целями в ₽1M. Но если не можешь найти первых 20 пользователей — вся стратегия бесполезна.
-
"Sandbox разработки" — это не бизнес. Иногда разработчики пишут код не для пользователей, а чтобы поиграть с технологиями в чистой среде без legacy. Это нормально и даже полезно для прокачки навыков. Но надо называть вещи своими именами: это не стартап, это playground для экспериментов с архитектурой.
Моё личное кладбище проектов:
- expert-booking.ru — покоится в мире. 32,600 строк кода, 21-страничная стратегия, 0 пользователей. Эпитафия: "Идеальная архитектура для несуществующего продукта".
- slot-me — всё ещё технически жив. Развёрнут в production, 11 этапов, 196 зелёных тестов, CI/CD, мониторинг. 0 пользователей. Эпитафия пока не требуется, но заготовка есть.
Что дальше:
Эта статья — первый шаг к честности с самим собой. Как у врача есть кладбище пациентов, у каждого разработчика есть кладбище проектов, умерших от его решений. Я наконец-то пришёл на своё кладбище и признал: эти проекты не умерли от плохой архитектуры. Они умерли, потому что были игровыми проектами, которые я пытался выдать за бизнес.
Я получил то, за чем шёл: прокачал навыки, попробовал современные технологии без legacy, поиграл в архитектуру как в Factorio. Это было полезно и интересно.
Проблема была в другом: я называл это "стартапом" и убеждал себя, что это про деньги и пользователей. А на самом деле это был sandbox для экспериментов.
Теперь нужно решить: либо превратить slot-me в настоящий продукт (найти первых пользователей, протестировать реальные гипотезы), либо честно добавить его в portfolio с тегом "technical playground" и перестать путать игру с бизнесом.
Если вы эксперт и вам реально нужен сервис для записи клиентов — напишите мне. Возможно, вы станете тем самым первым реальным пользователем, ради которого стоило всё это писать.


