Прошлым летом я заплатил 1480 рублей за премиум-подписку на одно известное приложение знакомств. За неделю — один матч. Девушка написала «привет», я написал «привет», она исчезла. Я подсчитал: 1480 рублей за одно «привет». Это очень дорогое «привет».
Сейчас в проекте 4500 строк CSS только в файле с тёмными темами, 48 SEO-страниц по городам России и 2890 рестартов socket-сервера, из которых половину сделал я лично, нажимая pm2 restart после очередного «ну сейчас точно заработает». Ниже расскажу, как это было и куда я в итоге попал.
Я не верю в свайпы. То есть как механика — гениально, продукт-менеджеры Tinder заслужили свои миллионы. Но как способ познакомиться с реальным человеком в реальном городе — это рулетка с очень плохими шансами. Половина девушек на свайп-сайтах вообще не отвечает на сообщения, а другая половина исчезает после трёх. Я знаю это, потому что сам так делал.
Зато я заметил другое. Когда мы с друзьями шли куда-нибудь — на выставку, в бар, на квартирник — там всегда было проще. У людей был общий контекст: они уже пришли на одно и то же место за одним и тем же. И знакомства происходили сами, без алгоритма и без 1480 рублей в неделю.
И я подумал: а что если соц-сеть будет крутиться не вокруг анкет, а вокруг событий? Ты не свайпаешь карточки — ты ищешь куда сходить. На странице события видишь кто ещё идёт. Перед ивентом — групповой чат с теми, кто записался. После ивента — оставшиеся знакомства уже из реальной жизни, а не из «привет → как дела → ага».
Я набросал это всё в Figma за вечер. Это был последний понятный день проекта.
Стек, выбранный по принципу «знаю — пишу»
React, Vite, socket.io, Postgres, Nginx. Никакой архитектурной мысли — просто что умею, на том и пишу. PM2 потому что не умею в Docker нормально. Два VDS — фронтовый с раздачей статики и SEO-ботам и бэкенд с базой и сокетами. Так получилось, потому что один из них мне достался дешевле через бизнес-знакомого.
Самой большой технической ошибкой в самом начале было сделать вход через VK ID единственным способом авторизации. VK ID отвалился через неделю по причинам, которые до сих пор не понимаю, и я три дня пилил классическую регистрацию по email с нуля. С тех пор у меня правило: если в продукте есть только один путь регистрации — это бомба замедленного действия.
Вторая ошибка — я сделал чаты раньше, чем сами события. Логика была «чаты универсальные, потом приделаю что угодно сверху». В итоге у меня была отлично работающая мессенджер-платформа, в которую можно было... писать друг другу? Не, спасибо, у меня уже есть Telegram. Полтора месяца ушло впустую.
Создать событие или взять одно из тех, что мой скрапер тащит из открытых афиш (с разрешения, через их же RSS, без серых схем — проверял с юристом)
Зайти на страницу события и увидеть кто идёт
Влиться в чат события — туда автоматически добавляешься после регистрации, креатор может кикать, после события чат сам исчезает
Полистать «карточки людей» с фильтром по городу и интересам — это в обычном понимании раздел знакомств, но без свайпов. Просто галерея с фильтрами и кнопкой «написать»
Купить картинку для своего события за внутреннюю валюту «вайбики». Купил один раз — пользуешься бесплатно сколько угодно
Включить премиум-подписку и получить, помимо прочего, 6 цветовых тем, включая «mono», «cosmos», «forest». Это бесполезная фича, но она моя любимая, и я считаю это достаточным основанием для её существования
Отдельная гордость — AI-подбор события под настроение. Пишешь в окошко «хочу спокойно вечером, недорого, для интровертов», AI смотрит активные события в твоём городе и предлагает три штуки с объяснением «почему подходит». Работает через OpenRouter, gpt-4o-mini. Стоит мне около 30 копеек за запрос — пока недорого, потом посмотрим.
Технических деталей я мог бы накидать ещё на десять страниц, но если коротко: 443 KB основной бандл, brotli-сжатие, серверный рендер для ботов, обычный SPA для людей, JSON-LD Event-разметка на каждом событии, динамический sitemap из 410 URL.
Деньги (точнее, их отсутствие)
Серверы — 4800 рублей в месяц. Домен — 700 в год. OpenRouter — пока копейки. Unsplash для картинок событий — бесплатно по их developer plan. Юр.лицо — самозанятый, налог 4%. Юрист на ТЗ один раз — 8000 рублей. Подписка на дизайн — отказался, использую Figma бесплатно.
Доход — есть подписки и редкие покупки вайбиков, в сумме за последние пару месяцев выходит около пяти тысяч рублей в месяц. То есть платформа окупает примерно один из двух серверов. Это очень круто для проекта, который год был просто папкой в Гитхабе, но жить с этого нельзя, и я это понимаю.
Я не венчурный фаундер, мне не дают MRR-метрики на конференции показывать, и слова «product-market fit» вызывают у меня в основном раздражение. Но я знаю, что мне за это месяц назад впервые написала незнакомая девушка из Тюмени, что она нашла на сайте квартирник, сходила, и там познакомилась с парнем. Парень сейчас её бойфренд. Это была лучшая статистика в моей жизни.
Чёрная полоса называется «Google Search Console»
Тут начинается самое больное.
Я делал SEO. Я делал много SEO. Я написал отдельный SEO-рендерер, который определяет ботов и отдаёт им полностью отрендеренный HTML, пока живые люди получают обычный SPA. Я сделал страницы вида /znakomstva/moskva с полным контентом, FAQ, Schema.org и микроразметкой Person для каждой анкеты. Я нормализовал дубли городов в БД, потому что у меня в данных были и «Архангельск», и «Arhangelsk». Я даже Schema.org Event на детальных страницах сделал — со startDate, location, offers, organizer, всё по правилам.
Google посмотрел на это всё и сказал: «спасибо, не индексирую».
410 URL в sitemap. 0 проиндексированных. Топ-запросы за 28 дней — мой собственный бренд (59 кликов) и пара случайных «мероприятия СПб сегодня» в позициях 50-72. Я зашёл в раздел Coverage и увидел знакомый каждому SEO-стажёру вердикт: «Обнаружена, не проиндексирована». Это Google говорит «я вижу твою страницу, но мне кажется она не достойна индекса». Не «плохое содержание», не «дубли», просто «вайбы не те».
Засабмитил sitemap руками через GSC
Подключил Indexing API через service account и насабмитил все 48 znakomstva-городов + все активные события
Добавил cron, который каждое утро это повторяет
Усилил Schema.org Event так, чтобы покрыть все восемь предупреждений из GSC
Сейчас сижу и жду. Google говорит «подождите 1-2 недели». В первый раз я ждал 1-2 недели в 2024 году. Они кончились.
Реклама и почему она не помогает в долгую
Запустил Яндекс.Директ. Работает. Трафик идёт. Но это аренда, не актив. Перестал платить — трафик закончился сегодня же.
Чтобы появился органический трафик, нужны обратные ссылки. Чтобы появились обратные ссылки, нужно либо платить за них (серый рынок, я туда не хочу), либо чтобы про тебя кто-то писал. Чтобы кто-то писал, надо быть либо знаменитостью, либо иметь PR-агентство, либо... писать самому.
Я попытался писать самому. На двух форумах меня забанили за рекламу через час. Это, кстати, был полезный урок про то, как не надо делать саморекламу. После этого я понял, что любой пост в духе «привет, я сделал клёвый сайт, заходите» — это автоматический бан почти везде. Работают только подробные истории. Желательно с провалами. Желательно с конкретными цифрами. Без призывов «регистрируйтесь».
Этот пост, который вы читаете — это мой выход из той дыры. Может быть, через него кто-то перейдёт на сайт. Может быть нет. Но даже если нет — я хотя бы привёл свои мысли в порядок, а это иногда тоже полезно.
Первое. Один человек не может сделать продукт уровня Tinder. Один человек может сделать нишевую штуку для нишевой аудитории, и это всё ещё может работать. У меня нет иллюзий, что платформа заменит кому-то крупные сервисы знакомств. Но если он станет тем местом, куда идут люди, которые хотят знакомиться через события, а не через свайпы — этого достаточно.
Второе. Технология — это не главное. Я мог бы потратить ещё полгода на оптимизацию бандла с 443 KB до 380 KB. Это не привело бы ни к одному новому пользователю. Один-единственный качественный пост в правильном Telegram-канале даёт больше, чем неделя технической оптимизации.
Третье. Стартап в одиночку — это очень специфическая дисциплина. Тебе не с кем поспорить о решении. Тебе не у кого спросить «а это вообще нормально, что я три дня переделываю dark theme и забил на маркетинг?». Тебе никто не скажет «успокойся». Решение всех этих вопросов — либо найти ментора, либо писать большие посты вроде этого и читать что отвечают в комментариях.
Четвёртое. Дешёвая обратная связь побеждает дорогую разработку. Когда я наконец показал черновик первой версии трём знакомым, выяснилось, что моя «гениальная» система ролей в чате событий никому не нужна, а вот «кнопка „я тоже иду"» — нужна. Два часа на кнопку дали больше, чем неделя на роли.
Пятое. Если ты делаешь что-то долго и тебе это всё ещё нравится — продолжай. Если не нравится — бросай и делай другое. Никакой золотой середины нет. Я ещё не на стадии «бросать», но иногда близко.
В планах: web push уведомления (потому что без них нельзя), сторис (потому что вся аудитория в них живёт), голосовые сообщения в чате (потому что 2026 год), верификация профилей с галочкой (потому что доверие).
Из менее очевидного — хочу попробовать офлайн-мероприятия от платформы. Не события, которые публикуют пользователи, а небольшие сборы по 15-20 человек в одном городе, организованные мной лично. Это сильно противоречит здравому смыслу про масштабирование, но я думаю, что без личного присутствия в первом году такой проект просто не взлетит. Видимо, придётся ехать в Питер и в Москву и сидеть с людьми за столом. Это очень не «product-market fit», но я уже давно не делаю всё «правильно».
——————————————————————————————
Если кому-то интересно посмотреть что получилось — сайт напишу в комах если интересно. Регистрация бесплатная, я ничего никому не продаю в первые дни, можно просто походить и сказать что не так. Я обычно отвечаю в поддержку лично, потому что больше пока некому.
Если кому-то есть что добавить, скинуть в личку, посоветовать — буду благодарен. Особенно по части того, как из «обнаружена, не проиндексирована» уползти в «проиндексирована». Если у кого-то есть рабочие методы — я весь внимание.