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

推荐订阅源

宝玉的分享
宝玉的分享
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
博客园 - 司徒正美
V
Vulnerabilities – Threatpost
月光博客
月光博客
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Azure Blog
Microsoft Azure Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Jina AI
Jina AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News: Ask HN
Hacker News: Ask HN
S
Security Affairs
V
Visual Studio Blog
Schneier on Security
Schneier on Security
T
Tailwind CSS Blog
Martin Fowler
Martin Fowler
V2EX - 技术
V2EX - 技术
博客园 - Franky
S
Secure Thoughts
Blog — PlanetScale
Blog — PlanetScale
G
GRAHAM CLULEY
D
DataBreaches.Net
O
OpenAI News
Forbes - Security
Forbes - Security
云风的 BLOG
云风的 BLOG
Google Online Security Blog
Google Online Security Blog
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
T
Tenable Blog
Latest news
Latest news
N
News and Events Feed by Topic
博客园_首页
Simon Willison's Weblog
Simon Willison's Weblog
C
Cybersecurity and Infrastructure Security Agency CISA
美团技术团队
T
The Exploit Database - CXSecurity.com
K
Kaspersky official blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
T
Threat Research - Cisco Blogs
SecWiki News
SecWiki News
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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", где я еще больше рассказываю про запуск своего продукта.