Я сделал кулинарный AI-сервис за $300 и 3 месяца: честно про стек, ошибки и SEO с нуля
TL;DR: Один разработчик, 300$, 300 часов — и кулинарный AI-сервис с 1 500 рецептами, поиском по ингредиентам, КБЖУ, автопарсингом цен из магазинов и PageSpeed 93 на мобильном. Ниже — честный разбор: что стоит денег, где потеряно время и какие решения были приняты иначе.
Привет, я Алексей. В феврале 2026 года я решил создать кулинарный сервис, где искусственный интеллект помогает готовить. Не очередной сборник рецептов, а что-то умнее: ввёл продукты из холодильника — получил рецепт с калориями, таймерами и списком покупок. Через 3 месяца сервис работает на двух доменах (Россия и Казахстан), на базе 1 500 рецептов, и я вернулся на всё примерно $300 (включая хостинг, API, домены и мелкие инструменты).
Расскажу честно: что получилось, что нет, сколько стоил каждый этап и какие решения принимались иначе.
Идея и MVP
Самое простое: открываешь холодильник, видишь курицу, картошку и сыр — и не знаешь, что из этого приготовить. Существующие сайты предлагают искать по названному блюду. Но я не знаю названия — я знаю, что у меня есть.
MVP собрал за две недели: Next.js на фронте, Express + MongoDB на бэке. Один VPS на REG.RU за 800 рублей в месяц. Развертывание через PM2 + nginx + GitHub webhook — push в main автоматически выкатывает на прод.
Первые 50 рецептов были приготовлены руками. Быстро понял, что вручную не масштабируется.
Генерация контента через Claude API
Главный рычаг — Клод Сонет от Anthropic. Я написал системный запрос на 24 000 токенов (да, это не печать — в соответствии со всеми категориями блюд, правилами валидации, шаблонами формирования, примерами для каждого раздела и инструкциями по расчёту КБЖУ). Эта подсказка последовательного рецепта в строго заданном формате: название, описание, ингредиенты с граммовками, пошаговые инструкции, КБЖУ, время приготовления, сложности.
Один рецепт через API стоит примерно $0,22. С кешированием промпта и пакетным режимом — $0,08. За 1 500 рецептов я заплатил около $120.
Качество? Процентов 95 рецептов — адекватные, проверял выборочно. Остальные 5% — курьёзы: модель путала граммовки (500г соли на 4 порции) или привела рецепт-методику вместо нормальных инструкций. Для борьбы с этим валидатором, который в каждом рецепте написал 30 правил: вес ингредиентов, время приготовления, наличие всех разделов.
720 ингредиентов — отдельная головная боль
Каждый рецепт содержит ингредиенты. Каждый компонент должен быть связан с записью в базе (чтобы работали фильтры и КБЖУ). Звучит просто, но на пример это оказалась самая сложная часть проекта.
Синонимы и автолинк
Проблема в том, что один и тот же компонент может называться по-разному: «растительное масло», «подсолнечное масло», «масло для жарки» — это всё одно и то же. А «сливочное масло» — совсем другое.
Написал автоссылку системы с псевдонимами. Она работала, но создавала мусорные привязки: «миндаль» привязывался к «муке», «листы нори» — к «макаронам». Пришлось добавить Guard-функцию, которая впоследствии стала общим корень слов перед привязкой, и вычистить 157 мусорных псевдонимов вручную.
Дубликаты
«Морковь» и «морковь» (разный регистр) — два разных компонента в базе. «Соль» в категории «специи» и «соль» в «приправы» — тоже дубли. Нашёл 12 таких групп, заходящих 540+ рецептов. Мержил скриптами.
Итого: 720 ингредиентов, 66 псевдонимов, 557 с полным КБЖУ из базы Министерства сельского хозяйства США. На это ушло больше времени, чем на весь фронтенд.
Фотографии: $0,048 за штуку
Рецепт без фотографий не работает — люди не кликают. Но фотосессия 1 500 блюд стоила бы как подержанный автомобиль.
Решение: генерация через Nano Banana 2 (платформа для генерации изображений, модель Flux). Стоимость — $0,048 за фото. Подсказка описывает блюдо, тарелку (8 вариантов: терракотовая, тёмно-синяя, пыльно-розовая), ракурс и освещение.
Формат выбрал 4 :3 пейзаж — лучше всего смотреть и в карточках, и на странице рецепта. Каждое фото автоматически конвертируется в AVIF и WebP в трёх размерах (480, 800, 1200 пикселей).
Результат: Сгенерировано более 900 фото, часть через API, часть вручную через веб-интерфейс. На сайте отображаются только рецепты с фото — остальное скрыто фильтром.
Автопарсинг цен: зачем и как
Одна из фишек сервиса — примерная стоимость блюд. Чтобы показать цену, нужны актуальные цены на ингредиенты в магазинах.
Написал парсер, который ходит в API Магнита (открытый), ВкусВилла (через прокси, потому что геоблокировка с сервера) и Arbuz.kz (реверс-инжиниринг JWT-авторизации).
За один день покрыли 316 из 375 ингредиентов для России (84%) и 200 для Казахстана (53%). В парсере было 20 ингредиентов с ценами.
Главная сложность — списки исключений. Парсер искал «молоко» и находил «молоко для ванны» или «молочко для тела». «Мука» — и получил «корм для кошек с мукой». Потребовалось 8 раундов итераций, чтобы вычистить мусор.
SEO: с нуля до 1 551 проиндексированной страницы
Сайт запустился в феврале с нулевым SEO. За три месяца:
PageSpeed mobile: от 60 до 93 баллов — главная победа. LCP упал с 4,8 до 2,6 сек, CLS с 0,323 до нуля. Экономия трафика: от 10,7 МБ до 40 КиБ при загрузке изображений.
Что сделал: ССР через окно. INITIAL_DATA (данные инжектируются в HTML), предварительная загрузка изображений героев, атрибутов размеров для карточек (800 Вт на настольном компьютере, 480 Вт на мобильном телефоне).
Google проиндексировал 1 551 страницу из 2 000+. Клики из резерва выросли с 3–4 в месяц до 19 — пока скромно, но сайту всего три месяца.
Для индексации: удобочитаемый URL (было /recipe/280, стал /recipe/chakhohbili), Schema.org JSON-LD для каждого рецепта, hreflang для двух доменов (ru-RU/ru-KZ), sitemap, canonical-теги.
Главная проблема сейчас — 0 внешних ссылок. Без них даже хороший контент ранжируется плохо.
Автопостинг в Telegram и Дзен
Для распространения контента настроен автопостинг: бот публикует 2 рецепта в день в Telegram-канале, каждый 7-й пост — статья. Из Telegram всё автоматически уходит в Дзен. Канал молодой, но это 60 постов в месяц со ссылками на сайт — для SEO-профиля полезно.
Стоимость проекта
Статья доступна(мок)VPS (REG.RU, 3 мес)~2 400 руб. (~30 долларов)Домен vkusai.ru~200 руб. (~2,5 доллара)Домен vkusai.kz~1 500 руб. (~19 долларов)Claude API (рецепты)~120 долларовКлод API (140 статей)~15 долларовОблако Атлас (фото)~30 долларовПрокси, мелкие инструменты~15 долларовИтой~230 долларов + 4100 руб. ≈ 300 долларов
Всё остальное — время. Около 300 часов за 3 месяца. Половина ушла на компоненты и данные, четверть на фронтенд, четверть на SEO и инфраструктуру.
Что бы сделал иначе
Первое: начал бы с компонентной базы, а не с рецептов. Без чистых, нормализованных ингредиентов с КБЖУ всё остальное — карточный домик. Я вернулся десять часов на починку связок, которые сломались из-за непроверенных данных.
Второе: сразу сделал бы фото в формате 4 :3, пейзаж. Первые 300 фото были квадратными — пришлось менять все контейнеры на сайте.
Третье: Schema.org и URL-адрес — с первого дня. Каждый день без них — потерянная индексация.
Стек
- Фронтенд: Next.js 15, React
- Источник: Node.js, Express.
- БД: MongoDB
- AI: Claude Sonnet (Anthropic API) для контента, Nano Banana 2 для фото
- Инфра: PM2, nginx, вебхук GitHub, авторазвертывание.
- SEO: Schema.org JSON-LD, карта сайта, hreflang, botPrerender с кешем
Текущая цифра
- 1 500 рецептов (900+ с фото)
- 720 ингредиентов (557 с КБЖУ)
- 140 статей (публикуются по 10/день)
- 450 ингредиентов с ценами (РФ)
- PageSpeed 93 (мобильный)
- 2 домена: кулинарный AI-сервис VkusAI и vkusai.kz
Зайдите в холодильник, посмотрите, что есть — и придайте форму прямо сейчас . Буду рад обратной связи в комментариях.
Если интересно — в следующей статье расскажем, как реверс-инжинирил API Магнита и Arbuz.kz для автоматического анализа цен на продукты.