Как я собирал Telegram-приложение для изучения английского языка с нуля
От идеи до прототипа: почему обычные курсы не сработали для меня
30 апреля 2025 года я запустил в Telegram новое web-app-приложение — Crazy Llama English. Это история о том, как один разработчик-самоучка за 1,5 года превратил Excel-таблицу со 140 000 слов в полноценный сервис с AI-подсказками, NFT-аватарами на TON и геймифицированной программой обучения.
Я начал изучать язык, как и многие: тесты на «12 времён английского за выходные», карточки со словами, мобильные приложения. Для меня всё разбивалось о две проблемы:
- Словарный запас. Без него не получалось применять изученную грамматику.
- Быстрая усталость. Долгие занятия выбивали меня из ритма: хочется учиться мельче, но чаще.
В русском сегменте Telegram (да и в приложениях на мой телефон) тогда не было приложений, которые объединяли бы короткие сессии, мотивацию через игровой процесс и доступность прямо внутри мессенджера. Так родилась идея Telegram-приложения для изучения английских слов, не зря же я обучался как Web Developer.
Фундамент проекта: как собрать словарь хотя бы на 20 000 слов
Шаг 1. Оцифровать данные
- После долгих поисков нашёл архив английских слов на 140 000 единиц в интернете, это была еще та задачка, ведь подобную информацию бесплатно никто не выдаст.
- Через Excel и множество JavaScript-скриптов удалял дубли, устаревшие леммы, редкие топонимы, название ирландских деревень и другую ненужную простому пользователю информацию.
Шаг 2. Проверить качество
- Оставил 20 000 наиболее употребляемых слов, отсортировал по индексу Google Ngram.
- Через нейросети и парсинг api переводчиков подобрал основную информацию по каждому слову (множество вариантов перевода, синонимы, описание, транскрипция, до 30 примеров в предложении и многое другое).
- Нанял с десяток переводчиков на фрилансе — ребята вручную сверяли транскрипции, перевод на русский и основные примеры.
Шаг 3. Добавить визуальный ряд
- Скачал через скрипт десятки тысяч изображения из open-source-фотостоков по ключевым словам.
- Написал Telegram-бота, где 15 фрилансеров голосовали «Подходит / Не подходит» для каждого выданного из 30 тысяч изображений, отбивая только подходящие варианты, если хотя бы три человека проголосуют положительно за отдельное изображение.
На данную работу ушло примерно 3 месяца, итогом стала CSV-база: слово + 17 атрибутов (транскрипция, часть речи, пример, частотность, синонимы, JJA/JJB-индексы и т.д., и т.п.). Очень медленный и скучный был процесс, но оно тоже стоило, ведь у меня теперь была уникальная база слов (хоть на маркете продавай).
Технологии: как превратить таблицу в Telegram-web-app
Имея минимальный опыт в Full Stack разработке, обучаясь на ходу в итоге подобрал следующие фреймфорки и библиотеки:
- Фронтенд: Vue 3 + Vite (лёгкая сборка, удобная реактивность для анимаций), - то, что надо, когда знаешь HTML, CSS, JS.
- Бэкенд: NestJS, NodeJS, TypeScript (строгая типизация и готовая структура модулей) - удобно, понятно, гибко
- База данных: PostgreSQL (JSONB-поля для словаря, полноценные транзакции) - по совету друзей, до этого использовал MariaDB.
- DevOps: Docker, Traefik (лёгкое масштабирование и SSL через Let’s Encrypt)
- AI-подсказки Deepseek GPT API (генерирует объяснения правил и ассоциации к выбранным словам каждого пользователя)
- NFT-аватары на TON блокчейне (нативная сеть для Telegram-экосистемы)
В итоег на бэкенде написано мною чистыми примерно ≈ 7 000 строк кода, на фронте ≈ 26 000.
Геймификация: зачем в изучении языка ламы и энергия
- Всего 15 минут в день. Алгоритм предлагает пользователям серию из 1, 2 или 5 заданий — ученик сам выбирает интенсивность.
- Опыт, уровни, энергия. За обучение снимается энергия, за правильные ответы начисляются очки, за ошибки уменьшается счетчик изученного слова. Это создаёт здравый «напор», но не заставляет монетизировать приложение насильно: энергия восстанавливается ежедневно постепенно.
- NFT-ламы. 1000 уникальных аватаров (эмиссия ограничена) на TON открывают дополнительные бонусы, но не дают преимущества «pay-to-win».
- Таблица лидеров. Прогресс сравнивается с другими участниками — один из самых сильных мотиваторов в EdTech.
Ключевые вызовы и решения
- Отсутствие серьезной готовой базы данных по словам в просторах интернета. Помогли: скрипты + фриланс + много ручной чистки.
- Нулевая экспертиза в бекенде. Помогло: разбор туториалов, ответы нейросетей, ревью коллег
- Постоянные баги при рефакторинге. Помогло: Интеграция E2E-тестов и помощь сообщества в тестировании.
- Сложность UX на мобильных экранах Telegram и работа с miniApp. Помогло: Mobile-first-дизайн в Figma, тесты на 10 устройствах, изучение библиотек @telegram-apps
Итог: что получил пользователь к дате релиза
- Приложение вполне шустрое, запускается одной кнопкой через Телеграм бота — не нужно устанавливать APK или регистрироваться, доступ через Телеграм в один клик.
- В базе — 20 000 проверенных людьми слов, разбитых на уровни сложности A1–C2 для любого типа пользователей.
- AI-ассистент дает подсказки по изучаемым словам (с NFT их больше).
- Множество разных заданий по словам из удобного словаря пользователя.
- Бесплатная модель: реклама отсутствует, оплатить можно звездами только приобретение энергии, увеличение размера словаря, либо купить для полного буста NFT-ламу за TONы на стороннем маркетплейсе по желанию. Платные возможности не являются обязательными, заниматься можно комфортно и без них.
Что важного я вынес из проекта
- Словарь — самое главное. Контент дороже интерфейса: без точных данных даже красивая оболочка бесполезна. Да, он не идеален, но все недочеты будут поправлены со временем.
- Короткие сессии работают. 15-минутный формат с ежедневными заданиями повышает retention: ученики реже «бросают» курс. Если есть желание - можно заниматься хоть весь день.
- Telegram-приложение экономит входной барьер. Людям проще кликнуть в знакомый чат, чем искать новое приложение в мобильных магазинах.
- Разработка подобного проекта практически в одиночку — очень, мега сложная, долгая и энергозатратная задача для одного человека без команды и инвесторов. Времени постоянно не хватает, бывали дни, когда просто опускались руки.
- Несмотря на то, что запуск был совсем недавно и пользователей у нас еще не много, я очень рад, что смог все таки закончить такой масштабный проект, хоть на это и ушло 1.5 года моего времени и не малая сумма вложений.
- Написать рабочий продукт в текущих реалиях это только часть проблема, вторая часть - рассказать о нем людям, разнести молву и привлечь тех, кому действительно нужен язык.
- Есть стараться делать продукт в первую очередь для людей, а не с целью заработка, писать код с желанием помощь людям подтянуть язык до необходимого уровня, то процесс будет идти куда легче и в итоге все должно получиться.
Кому интересно попробовать в Телеграм: @CrazyLlamaEnglish_bot