Соло-разработчик и ИИ: путь QoLab от PRD до первых продаж
Как я в одиночку довёл QoLab от документа с требованиями до подписанных лицензий и автовыдачи на FunPay — и где здесь реально помог ИИ.
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» уже довела продукт от документа до подписанных лицензий и автоматических продаж. Это проверено руками.