Почти год я развиваю VibeLing — приложение для изучения иностранных слов и фраз.
Его идея с самого начала казалась мне довольно понятной. Человек встречает незнакомое выражение в фильме, книге или статье, добавляет его в приложение, а дальше AI сам готовит перевод, примеры и произношение. После этого из добавленных слов составляются тренировки.
Мне нравилось, что в такой модели нет фиксированного курса. Можно добавить что угодно: редкое слово, сленг, рабочий термин или целую фразу, которую хочется запомнить. Пользователь сам собирает словарь из того, что действительно встречается в его жизни.
Именно так я и сам изучал языки. И долго считал, что это и есть законченная концепция продукта.
Но время от времени мне приходил примерно один и тот же комментарий:

Сначала я воспринял это как небольшую проблему первого запуска. Но спустя время оказалось, что в этом вопросе была спрятана главная дыра всего продукта.
Первый костыль: положить что‑нибудь в пустой словарь
Когда новый пользователь впервые открывал VibeLing, у него действительно еще не было ни одного слова. А значит, не было и тренировок. Получался пустой экран в приложении, которое только что обещало помочь учить язык.
Первое решение казалось очевидным: заранее добавить несколько демо‑слов. Человек сразу увидит заполненный словарь, сможет запустить тренировку и поймет, как все работает. Ненужные слова потом можно удалить.
Я такое видел в приложениях для ведения расходов. Когда устанавливаешь их, то там есть пару демо‑расходов на кофе и какие‑нибудь продукты. Вот я и подумал сделать также.
В итоге я добавил новым пользователям небольшой стартовый набор — что‑то вроде hello, house и других базовых слов.
Пустой экран исчез. Вместо него появилась новая проблема.
Люди с английским на уровне B1–B2 открывали приложение и видели слова, которые знали много лет.
Но потом мне подкинули очевидную идею, с которой сложно спорить. И таких комментариев было много:

Я добавил фичу, которой сам не пользовался
Честно говоря, я вообще не хотел добавлять готовые коллекции.
Я сам никогда не пользовался ими в языковых приложениях. Мне всегда казалось намного полезнее встретить незнакомую фразу, потребляя контент, а потом просто добавить ее самостоятельно. Она уже связана с конкретным контекстом и нужна лично тебе, а не абстрактному ученику с таким же уровнем языка.
Именно вокруг этого я изначально строил VibeLing. Не готовый курс и не очередной набор «100 главных глаголов», а инструмент, в который можно добавить вообще что угодно именно из своей жизни.
Поэтому, когда пользователи начали просить подборки, идея мне не нравилась. Она выглядела как шаг назад к языковым приложениям, от которых я как раз хотел отличаться.
Я решил, что пользователи лучше знают, чего им не хватает. И начал собирать тематические коллекции: слова и фразы для путешествий, работы, общения и других ситуаций. Человек мог открыть подходящую тему и добавить нужное в свой словарь.
Это решение оказалось намного полезнее демо‑слов. Коллекциями действительно начали пользоваться. У человека появился понятный источник, из которого можно взять первые слова, а выбор при этом оставался за ним.

Формально проблема была решена.
Но меня все равно что‑то смущало. Я добавил востребованную функцию, которой сам не верил и которой по‑прежнему не хотел пользоваться.
Сейчас я понимаю, что тогда совершил довольно типичную продуктовую ошибку: услышал не проблему пользователя, а предложенное им решение.
Люди совершенно правильно чувствовали свою боль. Они открывали приложение и не понимали, что учить дальше. Но из этого еще не следовало, что нужны были именно коллекции.
Постепенно проявилась и практическая проблема. Пользователи добавляли все интересное из доступных коллекций и снова спрашивали, что делать дальше. Я мог постоянно выпускать новые списки, но у этого не было конца.

В какой‑то момент я даже начал думать о пользовательских коллекциях. Пусть люди сами составляют наборы, публикуют их и делятся друг с другом. Но за этой идеей сразу появлялся отдельный огромный продукт: редактор, поиск, модерация, рейтинги, дубли, локализации, контроль качества.
И даже если все это построить, на выходе все равно получилась бы еще одна большая библиотека статичных списков. Она давала бы больше контента, но не отвечала бы на главный вопрос конкретного человека: что полезно выучить именно мне сейчас?
Я отложил эту тему и продолжил улучшать то, что уже было. Возможно, так продолжалось бы еще долго, если бы я сам не уперся в ту же проблему.
Английский скрывал проблему, а сербский ее показал
Я сам учу в VibeLing английский и сербский. Еще немного добавлял турецкие слова, когда был в Турции.
С английским исходная механика работала хорошо. Я постоянно сталкиваюсь с языком: смотрю фильмы, читаю статьи. Незнакомые выражения появляются сами. Мне остается просто добавить их в приложение.
С сербским все оказалось иначе. Я живу в Сербии и использую язык в повседневных ситуациях, но не потребляю на нем контент.
В результате в словаре лежало около тридцати слов и фраз, добавленных несколько месяцев назад. Я продолжал их повторять, но почти не добавлял ничего нового.
И тут я наконец понял, что не так было с продуктом все это время.
VibeLing отлично обрабатывал слово после того, как пользователь его принес. Но самую сложную часть процесса приложение оставляло человеку: сначала где‑то найти подходящее слово и решить, что именно стоит учить.
Получалось, что весь путь выглядел так:
Найти полезное новое слово вне приложения.
Добавить его в VibeLing.
Получить перевод, примеры и произношение.
Выучить его и повторять по расписанию.
Я хорошо построил шаги со второго по четвертый и почти год принимал их за целый продукт.
Приложение начиналось с середины.
Что, если приложение должно само знать, что учить дальше
Вместо того чтобы ждать, пока человек принесет очередное слово, VibeLing может каждый день предлагать ему новый список слов и фраз. Не одинаковый для всех, а собранный с учетом языка, уровня, цели, интересов и уже существующего словаря.

Если человек учит сербский с нуля для жизни в стране, ему можно предложить выражения для магазина, врача или разговора с соседями. Если у него английский B2 и он добавляет лексику про разработку, набор должен быть совсем другим.
При этом пользователь по‑прежнему принимает решение сам. Нужное можно добавить в словарь одним нажатием. А если какие‑то слова не были добавлены, то значит они неинтересны или пользователь их знает. На следующий день приложение собирает новый список уже с учетом предыдущего выбора.
Еще несколько лет назад для такой функции пришлось бы вручную строить огромную базу слов, связывать ее с уровнями и темами, а потом отдельно поддерживать все это для каждого языка.
Сейчас эту задачу во многом можно переложить на нейросети. На вход модель получает изучаемый язык, уровень, цели и интересы пользователя, его текущий словарь и список уже отклоненных вариантов. На выходе я получаю небольшой структурированный набор новых слов и фраз.
Это пока не сложная рекомендательная система с многолетней историей поведения. Но уже и не статичная коллекция, одинаковая для всех. Главное — теперь приложение может продолжать путь с того места, на котором находится конкретный человек.
Из инструмента начала складываться система
Раньше я описывал VibeLing примерно так: «Удобное приложение, в которое можно добавить любые слова и фразы, а потом выучить их».
Описание было точным, но в нем не было ответа на важный вопрос: почему пользователь должен вернуться завтра, если сегодня ему нечего добавлять и нечего повторять?
Теперь концепция звучит иначе: VibeLing сам знает, что вам учить дальше.
Для меня это и есть главный сдвиг. Раньше я делал хороший инструмент для человека, который уже понимает, что хочет учить. Теперь пытаюсь построить систему, которая полностью закрывает проблему пополнения словарного запаса.
Функцию я уже выпустил и начал менять вокруг нее экраны, тексты и промоматериалы. Но пока рано говорить, что гипотеза сработала. Мне еще предстоит посмотреть, сколько людей открывают рекомендации, сколько вариантов из списка добавляют, возвращаются ли за новой подборкой на следующий день и начинают ли чаще проходить тренировки.
Вполне возможно, что первые рекомендации окажутся недостаточно точными или людям понадобится больше контроля. Это уже покажет использование.
Если хочется посмотреть на механику вживую, приложение называется VibeLing. Оно доступно на iOS и Android.
В бесплатной версии каждый день рекомендуется 3 новых слова или фразы. В Pro доступен весь ежедневный список рекомендаций из десяти слов и фраз. У Pro‑версии есть 3-дневный бесплатный триал. По тренировкам и добавлению слов в бесплатной версии нет никаких ограничений.
Буду особенно рад обратной связи по качеству рекомендаций — сейчас это для меня главный вопрос.
Комментарии (25)

monrech
30.08.2026 20:18
Yet Another English, просто вбейте в поиск 
InsiderCrush
30.08.2026 20:18зачем это тут?
п.с. Спасибо за минус в карму. Одним махом мне 25 процентов кармы сняли.

vital_pavlenko Автор
30.08.2026 20:18Интересно, но у меня не только английский, а уже 10 языков и будут еще добавляться.
Если у вас бесплатно, то как планируете окупаться?
У меня тоже бесплатно, но просто в pro-подписке нет рекламы и можно одновременно несколько языков учить

monrech
30.08.2026 20:18Мне кажется у нас с вами так много общий идей. Как будто чей-то клод, так сказать в середине августа неплохо пробежался по моему сервису, и даже на некоторое время вызвал небольшой сбой - зато было отличное нагрузочное тестирование) Круто, что запустили тест на уровень английского и разные упражнения на слова, их явно не хватало. Заходите почаще, но лучше без клода, хихи.
InsiderCrush
Вижу, что дальше у вас возникнут ещё трудности. Что вы делаете сейчас? Берёте входящий сигнал, который состоит на 100% из шума (приложение помогает учить случайные фразы), и на анализе этого шума хотите предлагать пользователю рекомендации, что ему будет полезно изучить. Как? Как вы из этого шума выделите четко такой сигнал? По каким параметрам? Самое очевидное конечно - изучать паттерны. Но насколько изучение паттернов коррелирует с полезностью реальной? С этим и так уже справляются ваши тематические сборники
vital_pavlenko Автор
Как минимум у меня есть информация о текущем уровне. Если там 0-200 слов, то понятно, что нужны самые базовые вещи. Плюс есть информацию про цель изучения из онбординга. Это самые первые сигналы. А дальше я обучаюсь уже на том ,что пользователь добавляет, что ему интересно. Плюс, если он пропускает какие-то рекомендации, то это тоже сигнал для меня, что человеку не интересны такие слова или он их знает
InsiderCrush
Прошу прощения, подправил свое первое сообщение. Дополнил вопрос там
vital_pavlenko Автор
Я бы не сказал, что это шум. Если пользователь что-то добавляет, значит для него это важно. Моя задача дать ему то, что ему нужно
Например, мой словарь сербского состоит из готовых фраз для общения в ресторане/магазине. И приложение предлагает мне все в такой же концепции
А вес пользы я могу конечно же учитывать и склонять частично в эту сторону при подготовке подборки
InsiderCrush
Да, я понимаю! Я о другом. Грубо говоря, что я имел в виду - Ваши тематические сборники и так отличное Парето-решение. Зачем придумывать новые проблемы себе и пытаться их решить. Не определяйте для человека новое слово. Дайте ему кластеры. Он сам выберет нужные и будет учить что ему нужно. И даже - то что не нужно, но станет интересным (у вас семантический сборник же)
vital_pavlenko Автор
Так в этом и есть самая главная проблема — искать нужные слова и фразы в списках
Это как искать музыку, перебирая артистов и альбомы. При этом стриминговые сервисы решили эту проблему тем, что сами тебе предлагают, то что тебе скорее всего понравится
InsiderCrush
Так и стриминги не решили хорошо проблему вашего порядка. И тоже пришли к этому же что и вы - дать подобное. У Вас это в хороших тематических списках есть. Есть вечная проблема - человек не знает чего он не знает. Вы пытаетесь найти за него ответ. Если найдете как решать - вам Нобелевку дадут :)
vital_pavlenko Автор
Я бы не сказал, что они это не решили. Например, я пользуюсь яндекс музыкой и "подборка дня" там просто прекрасно работает. И чем я больше лайкаю что нравится и скипаю, что не нравится, тем подборки становятся качественнее по мою душу
Это кстати в какой-то степени даже был ориентир, чего хочется добиться