惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tor Project blog
AI
AI
S
Securelist
P
Privacy International News Feed
A
Arctic Wolf
T
Tenable Blog
C
Cisco Blogs
P
Proofpoint News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
AWS News Blog
AWS News Blog
L
Lohrmann on Cybersecurity
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
H
Heimdal Security Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
S
Security Affairs
P
Palo Alto Networks Blog
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - Franky
SecWiki News
SecWiki News
IT之家
IT之家
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CERT Recently Published Vulnerability Notes
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
月光博客
月光博客
H
Help Net Security
P
Proofpoint News Feed
Cloudbric
Cloudbric
Latest news
Latest news
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
Webroot Blog
Webroot Blog
B
Blog
量子位
J
Java Code Geeks
MyScale Blog
MyScale Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром T-TOPS: Как распутать гордиев узел проекта после выхода в прод (меч не понадобится) Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило?
2026-04-14 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение7 мин

Охват и читатели15K

Ретроспектива

Я долго искал идею для какого-то сайд проекта, который можно делать в свободное от работы время. Волонтерская работа меня не сильно вдохновляет, поэтому естественно я искал идеи, на которых можно заработать.

Как я перебирал идеи, я писал в прошлой статье. Я понял, что если хочешь фокусироваться на разработке, то лучше делать приложение, которое решает проблему одного человека. Никаких социальных взаимодействий, маркетплейсов и прочих бездонных ям для заливания трафиком.

Вспомнил, что давно испытываю боль с изучением иностранного языка. Последние дни я смотрел фильмы на английском и отдельно переводил слова или фразы в ChatGPT, и просил его сразу сгенерировать несколько примеров с использованием этих слов. Потом добавлял это в Anki вместе с примерами. Рутинная монотонная работа, которую в целом можно облегчить. 

Решил ее для себя автоматизировать. Быстренько накидал прототип в вебе. Там был простой инпут, подключен OpenRouter для использования API какой-нибудь LLM-модели. Я вводил любое слово на английском в инпут, а нейронка возвращала перевод на русском языке и 3 примера использования этого слова.

Начал пользоваться сам, и мне прямо понравилось. Не просто решил себе задачу, быстренько понимать перевод и контекст слов, но и просто механически оказалось приятно этим пользоваться.

И тут я понял — да это же и есть отличная идея для приложения, которую я искал. Решил делать.

Я стал думать — в каком формате разрабатывать этот инструмент. Первая мысль — сделать приложение в вебе, так проще и быстрее. Но нужно дать возможность не просто генерировать слова с примерами, а еще и учить их там же. При этом все учат языки на смартфонах — когда едут в метро или просто, когда есть свободные 10 минут. Стало очевидно, что нужно мобильное приложение, а не какой-нибудь веб-интерфейс или бот в телеграме. 

Сразу же полетела фантазия, что я должен сделать в этом приложении. Во-первых, определенно нужен самый топовый алгоритм повторений, чтобы даже круче чем у анки. Разные типы вопросов, чтобы и выбрать правильный перевод, и ввести слово и проверка произношения. Языков можно много добавить — это же нейронки под капотом, словари никакие составлять не надо. Значит можно с любого языка на любой переводить. А еще изображения можно с помощью нейронок генерировать…

Я вспомнил прошлый опыт, как пол года делал сервис для менторов. После чего рассказал об этом на Хабре и понял, что это никому не нужно и забросил. А у меня там была админка и куча функциональности после регистрации. При этом ни один человек не зарегистрировался и не воспользовался админкой пока жил этот проект. Так я его и забросил, когда понял, что продукт не полетел.

Похоже, надо поубавить свой пыл и не наступать на те же грабли. 

Я решил ответить для себя — какая основная идея приложения. Изучение иностранных слов с использованием ИИ, где не нужно вводить слова вручную и не будет лимитов по доступным словам и фразам при добавлении.

Значит нужно оставить только то, без чего основная идея перестанет работать. Я начал жадно выкидывать всё лишнее за исключением небольшой функциональности, без которой приложение теряет смысл.

Оставил в MVP два языка для изучения — английский и сербский. Сербский мне нужен был для того, чтобы понять как нейронки будут работать с непопулярными языками. К тому же я сам свой первый и главный юзер, а я живу в Сербии и учу сербский. Оставил только один тип вопроса для тренировки слов, на который буквально нужно ответить “помню” или “не помню”. А также решил сделать самый топорный алгоритм интервальных повторений на первое время — если ответил правильно, то слово появляется следующий раз сначала через 1 день, потом через 2 дня, потом через 4 дня, через 8 дней и так далее до бесконечности. Если ответил неправильно, то снова возвращаемся в самое начало и слово появится завтра. И еще добавил озвучку слов и примеров в список для первой версии приложения.

Скоуп для MVP готов. Можно начинать делать.

Так получилось, что моя жена с детьми улетели на неделю из Белграда в Москву. При этом я был в отпуске. Я плотно засел вайбкодить.

Я спешил и почти не читал код, просто добавлял фичи налево и направо.

Такой опыт для меня был новым и меня немного пугало, то что я не в курсе смысла каждой строчки кода в моем собственном продукте. Подозревал, что код ужасного качества. ИИ генерировал обработчики ошибок, которые скорее всего никогда не произойдут. Он нагенерировал файл на 1000 строк для сервиса по взаимодействию с AWS озвучкой — я его даже не читал, потому что озвучка работала. В проекте использовалась локальная база данных, и я не написал ни одного SQL-запроса руками. Все делал ИИ — вероятно, не самым оптимальным образом. Но главное, что все работало и я двигался очень быстро. Мне нужно было скорее самому начать пользоваться этим приложением и проверить — нужно ли это еще кому-то кроме меня.

Половину написанного кода я потом просто выкинул в помойку после бета-тестирования, а другую половину постепенно улучшил с помощью тех же нейронок, когда понимал, что эта функциональность остается и ее нужно поддерживать. Поэтому решение “делать грязно и быстро” было полностью оправдано.

И вот я смог установить MVP-версию на свой мобильный телефон. Пока что не через стор, а через TestFlight — инструмент для тестирования приложений на настоящем iOS-девайсе, а не в симуляторе.

Я был очень доволен тем, что вышло. Ощущения были в десятки раз ярче, чем от первого прототипа в вебе. Если даже это приложение никому не будет нужно, то я определенно продолжу им пользоваться. Максимальный подъем. Нужно двигаться дальше.

И вот я добрался до вопроса, который ввел меня в ступор. Добавлять или нет платную подписку. 

Если добавлю ее на такой сырой продукт, то буду выглядеть глупо. А если не добавлю и приложение выстрелит? Понимаю, что наивно, но есть же такой шанс. И тогда буду кусать локти. 

Да и потерянная прибыль — это пол беды. Больше волновало, а как я проверю — можно ли на продукте заработать? Вот будет у меня 10 бесплатных пользователей или 100 или 1000, это мне ни о чем не скажет, работает бизнес модель или нет. Не буду же я спрашивать людей, а вот если приложение было бы платным, то ты бы заплатил? Кажется, что такой вопрос задавать тупо – нужно просто дать возможность заплатить и наблюдать со стороны.

Решил все-таки добавить платную функциональность в MVP. Делов-то, все приложение сделал за пару дней, а здесь просто добавить подписку.

Так как супер pro-фичей у меня не было, то я просто порезал лимиты. В бесплатной версии можно было добавлять по 10 слов в день и искать до 100 слов в день. Также порезал лимиты на озвучивание слов и примеров. Pro-версия работала без ограничений и стоила 5$ в месяц.

Так как раньше я не делал платные подписки в React Native приложениях, то начал ресерчить какие способы есть. Оказалось, что есть 2 пути — делать все вручную без дополнительных инструментов или взять RevenueCat, который закроет часть проблем. Если коротко, то это прослойка между сторами и мобильным приложением. Он предоставляет визуальный редактор для экрана подписки, SDK для интеграции в React Native и аналитику по продажам Android/iOS в одном месте. Естественно, я пошел по второму пути.

Работа уже состояла не из написания кода, а из настройки всего окружения для подписок. Во-первых, нужно было интегрировать RevenueCat с App Store Connect — связать productId, группы подписок, офферы. А до этого разобраться, что это такое и настроить платную функциональность в самом сторе. После этого завести Sandbox-окружение для тестирования подписок. Создать экраны оплаты ручками в визуальном редакторе, а не промптами. 

В общем на этом этапе ИИ мог мне только подсказывать — что и где я не так настроил, но точно не мог все сделать за меня. Вайбы отличались от первых трех дней, когда я просто генерировал код и радовался, что все работает.

При этом тестировать покупки в эмуляторе не получалось, нужно было делать специальную нативную сборку. Важно было обработать кучу кейсов — отмены, истекшие подписки, восстановление покупок.

В итоге ты имеешь на руках вроде как работающие подписки, но вообще не уверен, что это реально сработает, когда ты зарелизишь это в прод. Да и не факт, что на ревью это пропустят — могут докопаться до формулировок, четкого описания преимуществ или из-за какого-то необработанного edge-кейса. Эту часть проверяют очень внимательно.

Но потом я дополнительно столкнулся с юридической стороной вопроса. Для платных приложений нужно заполнить разные налоговые документы в App Store Connect, а также привязать карту для вывода средств. Я долго пытался привязать турецкую карту Ziraat, но она не проходила валидацию потому что-то какое-то из значений содержало не то количество символов. В общем я так и не понял в чем была проблема. Получилось кое-как привязать сербский бизнес-счет для вывода средств. 

На этом ад закончился. Релиз пустили и даже не завернули на доработки.

Если MVP-версия всего приложения заняла 3 дня, то на интеграции платной подписки я встрял на целую неделю.

Пока делал MVP с возможностью оплаты, то пожалел несколько раз, что ввязался в это. Мог бы быстро опубликовать первую версию приложения и уже начать собирать фидбек и первых пользователей. А оплату уже прикрутить потом, когда продукт будет вкусным и отполированным. Но уже было поздно об этом думать — что сделано, то сделано.

Наступил момент, когда я могу рассказать о своем продукте и получить первый фидбек.

У меня на тот момент был телеграм-канал на ~1500 подписчиков, и я просто выложил пост, что сделал приложение.

И вот случилась первая подписка. Да не просто подписка, а еще и с фидбеком

Да, в первое время эта была единственная платная подписка. 

Было также много очень качественной обратной связи от людей, которые не оплачивали pro-версию. И бесплатной обратной связи вероятно бы хватило, чтобы двигаться дальше.

Самый обидный фидбэк был связан с той функциональностью, которую я специально выкинул из MVP. 

“Что, сербский? Это шутка чтоли. Добавьте другие популярные языки” – да черт, понятно, что я добавлю.

Или “транскрипция слов”, “вывод части речи” — это я тоже хотел добавлять позже. Так и знал, что на это тригернутся.

Ну и неожиданного важного фидбека тоже было много. Я узнал, что после установки приложения попадаешь на пустой экран без слов и вообще непонятно что делать дальше. Было много багов и кейсов с ИИ-галлюцинациями, которые я не замечал.

В общем я насобирал целый бэклог только из первой обратной связи.

А зачем я тогда делал платную подписку, если 90% обратной связи было от бесплатных пользователей? Тогда может и не стоило тратить неделю? Что я получил за свои старания, 5 долларов? Более того, этот человек потом отменил подписку и уже не стал оплачивать второй месяц.

Но ценность была в другом. Я убедился, что за такое приложение в целом возможно получить деньги. А значит на масштабе, уже можно отталкиваться хоть от какой-то цифры. Даже если это была 1 платная подписка на 100 бесплатных пользователей. Эта метрика, а с метрикой можно работать и улучшать ее.

Также стоит напомнить, что у меня есть расходы на инфраструктуру — AI, озвучка текста. И это тоже важный аргумент в пользу включения платной функциональности в скоуп MVP. Ведь нужно сразу следить за тем, чтобы экономика приложения сошлась.

Бесплатный MVP может создать иллюзию, что продукт нужен. У тебя растут пользователи, есть активность, хорошие отзывы, но как только ты добавляешь оплату, то все перестает работать. Оказывается, что продукт хорош, только потому что он полностью бесплатный.

А если цель MVP – решить, нужно ли дальше развивать этот продукт, то платные функции должны быть частью самой первой версии приложения.

MVP без оплаты — это не MVP. Это просто бесплатный прототип.


Если интересно посмотреть продукт, то это мобильное приложение VibeLing.

Ну и мой тг-канал "Pavlenko / Solo Founter", где я еще больше рассказываю про запуск своего продукта.