nikitenok.dev

Три недели 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 оплат за неделю. Это не опечатка, это старт.

Источники