сайт в бете
нашли баг? напишите
левин. записаться
весь блог

Соло-разработчик и ИИ: путь QoLab от PRD до первых продаж

Как я в одиночку довёл QoLab от документа с требованиями до подписанных лицензий и автовыдачи на FunPay — и где здесь реально помог ИИ.

Л
Проект Левин
автор
Соло-разработчик и ИИ: путь QoLab от PRD до первых продаж

PRD — мой якорь

Я не называю себя экспертом по запуску продуктов. Просто в какой-то момент решил проверить руками: сколько один человек с ИИ под рукой способен собрать сам, без команды. Получился QoLab — десктоп-утилита для Path of Exile 1 и 2, которая офлайн правит игровые файлы: визуал, производительность, читаемость. Слоган простой — Quality of Loot. Ниже — путь от PRD до первых денег, честно и по шагам.

PRD держит фокус

Первым делом я написал PRD. Не для красоты — соло-разработчику документ нужен, чтобы не расползаться мыслями. Когда ты один, рядом нет тимлида, который скажет «это в следующий спринт». Роль ограничителя берёт на себя текст.

В PRD я честно зафиксировал состояние: клиент функционально готов — все патчи, полный Mod Colors, RU/EN, бэкапы. И отдельно выписал то, чего ещё нет: генерация HWID, онлайн-активация, проверка подписи токена, рефреш. Это ушло в Phase 2. Такое разделение спасает от главной ловушки одиночки — попытки сделать всё сразу и не выпустить ничего.

Здесь ИИ работает как собеседник. Я скидывал куски требований и просил найти дыры: что забыл, где противоречие между «уже готово» и «ещё нет». Быстрее, чем спорить с самим собой в голове.

Лицензии: подпись вместо доверия серверу

Самая интересная часть — как продавать цифровой продукт, который работает офлайн. Клиент на .NET, игрок может запускать утилиту без интернета. Значит, лицензию надо проверять локально, без похода на сервер каждый раз.

Решение — Ed25519 и офлайн-верифицируемые токены. Сервер подписывает лицензию своим приватным ключом, клиент проверяет публичным. Одна деталь, которую легко пропустить: подписываются именно байты строки payloadB64url, без повторной сериализации JSON. Это не JWT. Начнёшь пересобирать JSON на клиенте — подпись развалится из-за разного порядка полей или пробелов. Байт-в-байт — и никаких сюрпризов.

Сервер я собрал на том, что даёт выпустить быстро: Hono на TypeScript через tsx, SQLite через better-sqlite3, всё в Docker за nginx. Он же отдаёт лендинг и кабинеты клиента и владельца. Стек намеренно скучный. Одному человеку кластер ни к чему. Нужен сервер, который переживёт ночь и не разбудит тебя в три часа.

Вот где ИИ экономит недели. Крипто-детали вроде «подписывай сырые байты» — та область, где легко сделать тонкую ошибку и потом ловить её месяцами. Проговорить схему с моделью, разобрать формат токена по полям, накидать тесты на верификацию — это заметно снижает риск.

Продажи: автовыдача там, где нет API

Продукт готов, лицензии подписываются. Осталось продавать. Я выбрал FunPay — площадку, где геймеры привыкли покупать. Загвоздка в том, что у FunPay нет официального API и вебхуков. Автоматизировать выдачу «по-нормальному» нельзя.

Рабочий способ оказался обходным. FunPayCardinal — бот на cookie-сессии моего аккаунта — ловит оплаченный заказ. Дальше мой плагин qolab_delivery.py чеканит свежий ключ через POST https://api.qolab.space/admin/keys и отправляет его покупателю прямо в чат. Оплатил — через секунды получил рабочий ключ, без меня.

Это единственный реальный путь автовыдачи с динамическим ключом на площадке без API. Ядро — match, mint, message, dedup — я покрыл тестами. Особенно dedup: без защиты от повторов один заказ рискует получить два ключа, а клиент — остаться ни с чем. Такие вещи ломаются молча, поэтому проверка обязательна.

Что реально дал ИИ одиночке

Соблазн сказать «ИИ написал всё за меня» большой. Правда скромнее. ИИ дал мне троих недостающих коллег: ревьюера, который читает PRD и находит противоречия; консультанта по областям, где я слаб (крипто, форматы токенов); и генератор чернового кода, который экономит время на рутине вроде плагина выдачи.

Остальное — мои решения. Выбрать скучный стек. Разделить фазы. Пойти обходным путём на FunPay вместо ожидания официального API, которого нет. ИИ ускоряет, границы продукта держит человек.

Выводы для тех, кто собирает в одиночку

Несколько вещей, которые я бы сказал себе в начале:

  • Пишите PRD, даже если вы один. Он держит фокус лучше любой мотивации.
  • Честно делите на «готово» и «Phase 2». Иначе релиз не наступит никогда.
  • Берите скучные технологии. Одному чинить их проще.
  • Тестируйте денежные и защитные пути. Dedup, подпись, активация — то, что ломается тихо и дорого.

QoLab пока в начале пути, и я всё ещё учусь вместе со всеми. Но связка «один человек + ИИ + понятный PRD» уже довела продукт от документа до подписанных лицензий и автоматических продаж. Это проверено руками.

теги #автоматизация#соло-разработка#ии#лицензии#ed25519#funpay

один разговор — и поймём, чем я могу помочь.

В эпоху ИИ человеку нужен человек. Сяду рядом и доведу до результата — встреча длится столько, сколько нужно. Без скрипта продаж и пакетов «за 999 000 ₽». Если пойму, что помочь не смогу, — скажу сразу.