Перейти к содержимому

Терапия через код: как я написал два стартапа для 0 пользователей

Константин Потапов
7 мин

32 600 строк, 196 тестов, 11 этапов MVP, CI/CD, Sentry. Живых пользователей ноль. Я писал не рынок, а песочницу без легаси.

Захотел платформу записи к экспертам. Calendly, только «под российский рынок». Что это значит, я не знал. Юристы, психологи, консультанты, коучи. Человек ставит слоты, другой бронирует. Казалось, дыра очевидна.

Назвал это expert-booking.ru. Взял TypeScript full-stack, знакомый молоток: Node.js, Express, React 18, Vite, PostgreSQL, Knex, Docker, заглушка под ЮKassa, на фронте Feature-Sliced Design.

Первая очередь

Код рос. Платформа для людей, которых я ещё не встретил, получилась полной.

Бэкенд около 1 600 строк: 14 миграций, 12 модулей API, JWT с ролями client, expert, admin, заглушка оплаты.

Фронт около 31 000 строк: админка с аналитикой, календарь эксперта, брони с подтверждением оплаты, ESLint на границы слоёв, Tailwind.

Инфраструктура: Docker Compose, Nginx, SSL, скрипты деплоя, Redis под сессии.

Технически можно было запускать. Рядом лежала маркетинговая стратегия на 21 страницу: ₽1 млн в месяц через 18 месяцев, четыре этапа, на четвёртом уже AI, потому что 2024-й. Документ не читал никто, кроме меня.

Завис не на коде. На первых двадцати экспертах. Кому продавать, чем снимать с живого Calendly или телеграм-бота, какую боль я вообще закрываю. План покорения Эвереста был готов. Из дома я не выходил.

32 600 строк и 21 страница текста под людей, с которыми я не поговорил ни разу.

Вторая очередь, уже на Python

Через несколько месяцев решил, что теперь иначе. FastAPI вместо Node: молоток снова был привычный. Имя короче, slot-me.ru. Сначала три-пять живых людей, потом код.

С несколькими знакомыми экспертами я и правда поговорил: чем пишут запись, где трёт, сколько готовы платить, сядут ли в новый сервис на этой неделе.

Потом снова ушёл в код. Не на неделю. На месяцы. Не MVP, а production.

FastAPI, 196 тестов, покрытие 56%. React и снова FSD. 27 миграций. OAuth через Google и Яндекс. Google Calendar и Яндекс.Календарь. Письма через SMTP и SendGrid. Напоминания на APScheduler. CI/CD, Nginx, Sentry.

Одиннадцать этапов из одиннадцати закрыты. Пользователей готово ноль.

Дело было даже не в деньгах. Хотелось выложить в интернет что-то своё и увидеть, что могу. Вместо гипотезы «людям это нужно» стоял челлендж «соберу без легаси».

Это было неплохое развлечение. Factorio, только коммиты настоящие: другой стек, два провайдера OAuth, 196 тестов, 11 технических документов, бэкапы, health check. Игру я назвал стартапом.

Где светло

В первом проекте бэкенд на 1 600 строк ещё похож на MVP. Фронт на 31 000 уже нет.

До первого пользователя я успел: жёсткую валидацию слоёв FSD для команды, которой нет; запрет deep import для себя одного; админку с графиками на нулях; UTM и кампании, чтобы мерить трафик, которого нет; рефералку, чтобы нулевые пользователи приводили таких же.

Аэропорт в пустыне. Жду, когда сами сядут самолёты.

Код это зона контроля. Разговор с незнакомым человеком нет. Я искал там, где светло, не там, где потерял.

Sentry смотрит тишину

slot-me сейчас в production. Тесты зелёные, 196 из 196. CI/CD везёт. Sentry дежурит у тишины. Живых пользователей ноль. Периодически логинюсь сам, проверить, что дом ещё стоит.

Система напоминаний аккуратно шлёт письма за 24 часа, за час и за 15 минут до встречи. Встреч нет. Она напоминает пустоте о пустоте.

OAuth в один клик. Кликать некому. Красивая дверь в пустой дом.

Одиннадцать документов по архитектуре, деплою, мониторингу. Единственный читатель я, когда забываю, как это устроено.

Фичи, которые я записывал как «запросы пользователей», я придумал сам. Напоминания, дашборды, календари. Мои гипотезы о чужой боли.

Как у врача есть кладбище, у разработчика тоже есть. Эти двое не умерли от плохой архитектуры. Они умерли, потому что в них никто не зашёл.

expert-booking.ru лежит. 32 600 строк, 21 страница стратегии, ноль людей. Эпитафия: идеальная архитектура для отсутствующего продукта.

slot-me технически жив. Можно оставить в портфолио биркой «песочница» и перестать путать игру с кассой. Можно найти первого человека с именем, телефоном и своей дырой, не персону 28-45 лет с доходом ₽80 000. Если вы эксперт и вам правда нужна запись, напишите.