Два сбоя в одном AI-продукте: когда Groq убирает модели, а Netlify перекрывает Send

Три слоя, на которых держится соло-продукт с LLM: поставщик вывода модели, ваш фронтенд и чужой виджет хостинга. Сломался любой слой, и пользователь видит «мёртвый» чат, даже если код выглядит рабочим. Двенадцатилетний Harun собрал KODA, AI-наставника по коду на Android без ноутбука, и через пару дней после запуска поймал оба отказа сразу; в его разборе зафиксированы уроки, которые переносятся на любой стек с внешним API, не только на мобильную сборку в Acode.
Groq снял модели: AI-наставник перестал отвечать
KODA позиционируется как SaaS «AI coding mentor» для начинающих: чат с подсветкой синтаксиса, история диалогов, кнопка Panic с объяснением «как пятилетнему». Под капотом: Vanilla JS, Supabase и Groq; деплой на Netlify, оболочка Android через Median.
После публикации живое приложение начало отдавать ошибки: Groq снял с обслуживания модели llama-3.1-8b-instant и openai/gpt-oss-120b. Пока в коде была зашита одна модель, чат для реальных пользователей фактически лежал. Это не баг в UI, а зависимость от инвентаря поставщика вывода.
Автор сформулировал вывод коротко:
AI models are suppliers. Suppliers rotate inventory.
В build-log первой версии стояла llama-3.1-70b-versatile; после инцидента Harun собрал цепочку fallback, перебор моделей до первого успешного ответа:
const MODELS = ['llama-3.3-70b-versatile', 'openai/gpt-oss-20b', 'meta-llama/llama-4-scout-17b-16e-instruct', 'qwen/qwen3-32b'];
Для соло-разработчика, который держит агента или чат-бота на Groq, OpenAI или другом API, сценарий тот же, что и в десктопной IDE с подключённой моделью: одна захардкоженная модель — одна точка отказа при ротации у вендора.
Бейдж Netlify перекрыл Send: UI-конфликт, который не лечится CSS
Второй сбой не связан с LLM. Бейдж «Powered by Netlify» накладывался на кнопку отправки сообщения: реальные пользователи не могли нажать кнопку отправки, хотя бэкенд и Groq уже были в порядке.
Harun пробовал скрыть бейдж через display: none !important и JS-удаление из DOM. Без эффекта. Рабочее решение он назвал «Titanium Shield»: панель ввода с z-index: 2147483647, бейдж уходит на z-index: -9999.
Это напоминание, что AI-продукт — не только промпт и модель. Любой сторонний виджет на странице чата может обнулить UX быстрее, чем галлюцинация модели.
Что KODA учит про AI-наставника, а не только про мобильную разработку
Harun пишет код на POCO C55 в редакторе Acode, без ноутбука и привычного контура Cursor с MCP и rules. Крайний случай, но логика продукта узнаваема: наставник должен «дать карту, а не только ответ». KODA направляет на python.org, RealPython, Codewars, git-scm.com, а не замыкает обучение внутри чата.
Из практики запуска автор выносит ещё три привычки:
- читать логи чатов в Supabase: пользователи пишут roadmap прямо в поле ввода;
- не перезаписывать рабочий код сгенерированным без бэкапа;
- не полагаться на одну точку вывода модели без запасной цепочки.
В build-log отдельно всплывали мобильные ловушки: 100vh в Chrome на телефоне (фикс через height: 100% и env(safe-area-inset-bottom)) и тихий отказ Supabase RLS на таблице chats (решение через GRANT ALL ON public.chats TO authenticated).
Тестировать в Incognito автор не мог: Google Family Link блокирует режим; обходил cache-busting ?v=2. Для взрослого соло-разработчика это частный случай, но паттерн «prod ломается в условиях, которые вы не воспроизводите локально» общий.
Стресс-тест и цифры автора
Senior Software Engineer из Atlanta нашёл KODA, зарегистрировался и прогнал шеститочечный стресс-тест: генерация кода, удержание персоны, границы галлюцинаций, глубокие CS-концепции. По словам Harun, все шесть пунктов прошли; в ответном письме инженер процитировал Angie Thomas: «Brave doesn't mean you're not scared. It means you go on even though you're scared.»
В том же посте Harun публикует свой scoreboard: 115+ просмотров материала, 8 пользователей, из них 3+ «настоящих незнакомцев», один senior-инженер на QA. Это самоотчёт автора, не независимый аудит, но он показывает, что даже минимальный AI-продукт без десктопной IDE доходит до живых тестировщиков, если пережить первые сутки после депрекации моделей и UI-конфликта.
В планах на ближайшее время: PWA на домашний экран, Git и рост с 8 до 80 пользователей. Публичный призыв к senior-разработчикам: «roast my architecture»; для начинающих KODA остаётся бесплатным.
Итог для соло на внешнем выводе модели: не хардкодьте одну модель Groq или аналога; заложите запасную цепочку моделей и проверьте, что сторонние виджеты хостинга не перекрывают критичные кнопки чата. Мобильная сборка без IDE не снимает эти правила — она только делает отладку медленнее.
Источники
- Harun (@koda2026), «I'm harun (12). I built an AI coding mentor on my Android phone. Then everything caught on fire.» — Dev.to (доступ 2026-08-24)
- Harun (@koda2026), «I'm 12. I don't have a laptop. I built a full-stack AI SaaS on my Android phone.» — https://dev.to/koda2026/im-12-i-dont-have-a-laptop-i-built-a-full-stack-ai-saas-on-my-android-phone-2o2l (доступ 2026-08-24)