Запуск, оплаты от своих, взломанный сервер
Расширение официально вышло в Chrome Store, первые оплаты прошли от друзей. А ещё выяснилось, что один из моих серверов уже неделю майнит кому-то крипту — спасибо свежей дыре в React Server Components.

Автор: Georg Malahov
Был один из тех дней, которые запоминаются надолго. Просидел над проектом часов семь подряд: сделал онбординг на три страницы, демо-сессию, экспорт и импорт данных, починил наконец дико бесящий баг с переключением вкладок, покрыл всё тестами и залил в прод. Один pull request тогда удалил пять тысяч строк и добавил двадцать — большая работа, после которой дышать стало легче. Вот эта работа мне как раз даётся, тут я в своей тарелке. Финансово, правда, я уже прилично в минусе — на днях подбил расходы: курс по маркетингу, в рамках которого я этот запуск и делаю, подписки на инструменты, сервисы по мелочи — выходит около трёх тысяч евро, — и от этого очень хочется поскорее открыться и получить первые продажи.
Восьмого декабря прошла первая тестовая оплата — я сам прогнал платёж, и он сработал. А десятого расширение официально вышло в публичный Chrome Store. Я в тот день записал, что «сегодня великий день», и ощущение было настоящим, хотя великого там ровно столько, сколько бывает в любой день, когда долгожданный шаг наконец сделан. Созвонился с другом, он прошёл весь флоу установки от начала до конца, нашёл несколько мелких UX-недочётов с онбордингом и счётчиками — но прошёл. Первые живые оплаты пришли от своих, от пары человек, которым я дал потестить и которые прошли весь путь, чтобы помочь. Это приятно, но я отдаю себе отчёт, что это пока репетиция, а не рынок.
Карточка в сторе обещает главное: транскрипт звонка в Google Meet — и никакого бота-участника в звонке.
А через неделю прилетела порция реальности. Семнадцатого декабря, пока публиковалась очередная версия, подтвердилось: один из моих серверов взломали — влезли, судя по следам, дней десять назад и тихо майнили крипту. Дыра оказалась не моя: в начале декабря в React Server Components нашли критическую уязвимость (CVE-2025-55182, она же React2Shell) — под ударом оказались приложения на Next.js, основном фреймворке моих лендингов, и волна взломов с криптомайнерами прокатилась тогда по всему интернету. Продукт не пострадал — на той машине из его частей лежал только лендинг, без секретов, — но паранойя включилась по полной: пересоздать сервер, перетряхнуть пароли и переменные окружения везде, до чего дотянулся. Провозился с этим вместо нормальной работы. Урок общий: даже если сам ничего не сломал, чужая дыра в популярном фреймворке дотянется до любой машины, которую вовремя не обновил.
К концу недели я всё-таки доделал пару фиксов и отправил новую версию на проверку. Провозился, как обычно, дольше, чем планировал, — потратил лишние три часа вместо того, чтобы съездить в бассейн. Но получилось неплохо, прямо классно, я бы сказал. Ещё, пока возился с публикацией, пришло письмо из Нигерии с предложением накрутить мне тысячу установок за двести пятьдесят долларов. Очевидный мусор, но забавно, что я уже дорос до того, чтобы мне такое писали.
Сам для себя я сейчас формулирую расширение так: это второй мой проект, который я хочу сделать личным источником дополнительного дохода и на котором буду оттачивать маркетинг и ведение бизнеса. Не основная работа, а полигон. Поэтому план на отпуск — заниматься не кодом, а продвижением: дождаться одобрения новой версии и идти в бесплатные каналы.
Ближайшая цель одна: первая оплата от человека, которого я не знаю и не уговаривал. Пока все оплаты — от своих, и они не считаются: свои покупают, чтобы помочь, а не потому что им нужно, и про рынок такие покупки не говорят ничего. Будет хоть один незнакомый человек, который сам нашёл, сам поставил и сам заплатил, — значит, продукт кому-то нужен за пределами моего круга. Не будет — значит, нужен пока только мне и друзьям.
Отправляю версию на ревью в Chrome Store — и наконец-то иду спать.