Три недели Talkfirst: Telegram Mini App, MCP в ChatGPT и Claude и один клик из Google
Как я собрал Talkfirst: разговорная практика, литовский A2 и экзамен по Конституции, MCP-сервер для ИИ-ассистентов и честные цифры первого SEO.
- Опубликовано
- Проекты
- Talkfirst
- Теги
- talkfirst, mcp, seo, lithuanian
Talkfirst начинался с простой мысли: язык учат, когда говорят на нём, а карточки и квизы нужны только как подпорки к разговору. Первые спеки сервиса я написал 23 сентября. К 12 октября у продукта уже был свой домен talkfirst.io, Telegram Mini App, веб-приложение, MCP-сервер для ChatGPT и Claude, пробный экзамен по Конституции Литвы и 31 SEO-статья. В этом посте я рассказываю, что из этого реально работает, как оно устроено и какие у меня цифры. Цифры пока маленькие, и это тоже часть рассказа.
Одно ядро, много тонких клиентов
Архитектурное решение я принял в первый же день дистрибуции. Есть одно ядро, а к нему много тонких клиентов. Аккаунт, словарь, карточки, повторения, озвучка, разговоры и прогресс везде одни и те же. Клиент — это просто ещё одна точка, где человек впервые встречает продукт.
На старте ядро умело разговор голосом с разбором пауз, произношение, квиз, словарь и прогресс, а наружу смотрело PWA и MCP-эндпоинтом с виджетами. Вход был только по приглашению, лимитов и оплаты не было. Первым внешним клиентом я выбрал Telegram Mini App: там регистрация через Telegram и оплата звёздами Telegram без своей платёжки.
Порядок волн: веб с programmatic SEO, Telegram, расширение браузера, ChatGPT/MCP, Discord, сторы; WhatsApp, Slack и Teams — во второй волне.
Лимиты и деньги
Через неделю появились недельные лимиты. Free — 35 минут голоса в неделю. Pro — 140 минут за 500 звёзд Telegram. Сброс в понедельник по часовому поясу курса. Тогда же я завёл учёт расходов на каждого пользователя. По нему экзаменационные реплики я перевёл на другую модель, и одна реплика стала стоить около $0,0005 вместо $0,014.
Юнит-экономика при этом не сошлась, и я это вижу. По оценке, Pro-пользователь, который выбирает лимит до конца, стоит мне примерно $8–13 в месяц. Со звёзд Telegram я получаю около $6,5. Вопрос открыт: ограничить у Pro промахи озвучки или поднять цену. Решать надо до запуска оплаты картой. Сейчас Pro покупается только звёздами в боте. Под веб-оплату уже лежит спека с вариантами провайдера.
Литовский: A2 и Конституция
Литовский я учу сам, поэтому этот трек получил больше всего внимания. Контент я собирал из открытых источников:
- частотный словарь CCLL;
- примеры из Tatoeba с указанием авторов;
- банк заданий экзамена A2 по программе NŠA, в первой версии 77 заданий.
Отдельно сделал трек «курьер / водитель» на литовском и польском. В нём четыре сцены, сцена «у двери» бесплатная. Письменный литовский A2 вышел 7 октября.
Пробный экзамен по основам Конституции Литвы — это банк из 200 вопросов, сверенный с текстом редакции 2022 года. Режимов три: «как на экзамене», тренировка и работа над ошибками. На Free доступен один вариант раз в 7 дней и один раздел, на Pro всё. У лендинга экзамена есть демо без регистрации.
При проверке банка всплыл неприятный артефакт генерации: верный вариант часто оказывается самым длинным. Так вышло в 98 вопросах из 200. Человек, который сдаёт экзамен по-настоящему, такую подсказку выучит за вечер. Поэтому неверные варианты буду переписывать.
MCP: Talkfirst внутри ChatGPT и Claude
Помимо Telegram и веба, Talkfirst можно подключить в ИИ-ассистент как MCP-сервер.
- Протокол и вход. Удалённый сервер на Streamable HTTP, OAuth 2.1 с PKCE S256 и динамической регистрацией клиентов. Войти можно кодом на email или через Telegram.
- Инструменты. Они открывают окна MCP Apps: оценка произношения, голосовой разговор с ИИ-партнёром, квизы. Помимо окон есть личный словарь с интервальным повторением, аудиоуроки, недельный план и прогресс.
- Реестр. Сервер опубликован в официальном MCP Registry как
io.talkfirst/talkfirst. Оттуда его подхватывают другие каталоги.
Самое полезное, что я узнал про хосты, касается ограничений, а не возможностей:
- Мобильный Claude. Окна MCP Apps на вебе и десктопе Claude получают микрофон. В мобильном приложении WebView работает без микрофона, поэтому разговорная практика там не работает.
- Каталог ChatGPT. Ревью заявки по документации занимает 60–120 дней. Доступность в ЕС на момент исследования не подтверждена.
- Правила плагинов ChatGPT. Внутри плагина нельзя показывать тарифы и звать на апгрейд. Поэтому сервер ни в одном хосте не предлагает Pro: про лимит он сообщает как факт и добавляет «подробнее в приложении Talkfirst».
SEO без CMS: честные цифры
Гайды я генерирую скриптом из исходников в репозитории лендинга, без CMS. Сейчас это 31 статья на русском, украинском, английском и польском по 11 темам: литовский и польский, первые фразы, темы устной части B1 и так далее. Техническое SEO такое:
- sitemap с hreflang;
- canonical со слешем;
- JSON-LD;
noindexна приложении и API.
Одна тонкость стоила мне времени. Страница входа открыта в robots.txt, но отдаёт noindex. Причина в том, что URL, закрытый в robots, поисковик не обходит. Значит, он не увидит и noindex, а голый адрес в выдаче хуже, чем никакого.
Теперь цифры. Первая полная неделя в Search Console (28 сентября — 4 октября): 1 клик и 2 показа. Единственный клик — по брендовому запросу «talk first», позиция 2.
На 4 октября два отчёта Search Console показывали разное. Отчёт sitemap: отправлено 56 адресов, в индексе 0. Отчёт покрытия того же дня: Google знал 60 страниц, и вот где они были:
- в индексе — 12;
- «обнаружена, не проиндексирована» — 38: Google туда ещё не заходил, домен новый и без внешних ссылок;
- «просканирована, но не проиндексирована» — 8, и среди них три гайда «первые фразы».
Разметка у них в порядке, я проверил вживую. Моя гипотеза: тексты на разных языках слишком похожи, и молодому домену Google оставляет одну версию. Это пока гипотеза, не вывод.
Для ИИ-поисковиков добавил llms.txt, Content-Signal в robots и единый узел бренда в JSON-LD. Для каталогов подготовил 9 заявок: Product Hunt, AlternativeTo, SaaSHub, BetaList, Uneed, There’s An AI For That, Futurepedia, Glama и каталог Telegram Mini Apps FindMini. Какие из них стоят своих денег, ещё решаю. Платные варианты стоят от $5 за приоритет до $497.
Как это делалось
Делали это два потока агентов Claude Code в одном коде: продукт и дистрибуция. Сервер дорабатывает дистрибуция, экраны — продукт. Задания между потоками передаются файлами, потому что сессии меняются и сообщение между ними может потеряться.
На совместной работе в одном дереве мы один раз обожглись. 24 сентября чужой коммит забрал половину наших правок, и HEAD был сломан до нашего коммита. С тех пор правило такое:
- если в общем файле есть чужие правки, свой патч коммитим через
git apply --cached; - тесты перед выкладкой гоняем на
git archive HEAD, а не на рабочей копии.
Тестов было 932 на 2 октября и 2021 в прогоне 12 октября. Прод раз в час проверяет локальная рутина и пишет мне, если что-то не так.
Что дальше
Открытых вопросов три: оплата картой, экономика Pro и индексация. Чешский уже в коде: движок, колоды A1–A2, лендинг и три гайда, но на сайт пока не выложен.
И пользователи. По еженедельному отчёту за 28 сентября — 4 октября: 3 ученика, 1 активный за неделю, 1 Pro, 0 оплат за неделю. Это не опечатка, это старт.