WhatToCook — AI-рецепти з того, що є вдома
Про проєкт
- Клієнт Власний SaaS
- Рік 2026 → сьогодні
- Категорія SaaS / AI Cooking
- Стек Next.js 16 (App Router), React 19, TypeScript, Tailwind v4, Prisma 7 + Postgres (@prisma/adapter-pg), NextAuth v5 (JWT, Google + Credentials), Expo (mobile placeholder), WayForPay, npm workspaces monorepo
- ШІ Claude Vision — OCR чеків, витяг продуктів і генерація рецептів в одному пайплайні
Опис проєкту
WhatToCook — SaaS з оплатою за кредитами, який перетворює те, що є на кухні, у рецепти, які реально можна приготувати сьогодні. Користувачі додають інгредієнти трьома способами — сфотографувати чек, сфотографувати окремі продукти або просто вписати вручну — і сервіс повертає персоналізовані покрокові рецепти, підібрані з курованої бази. Сканування безкоштовне; генерація рецепта коштує один кредит. На старті безкоштовно даються три кредити, потім докуповуються паки (10 / 50 / 100) через WayForPay.
Архітектура: TypeScript-монорепо на npm-workspaces з Next.js 16 App Router у apps/web, спільним packages/shared для типів та констант, спільних між клієнтами, і Expo-плейсхолдером у apps/mobile. Усі ендпойнти — route handlers Next (не server actions), щоб той самий інтерфейс працював і для веб-дашборду, і для майбутнього мобільного клієнта — авторизація в API проходить через хелпер getUserId(), який спочатку перевіряє сесію NextAuth і фолбекається на Bearer-токен. Сховище — Prisma 7 поверх Postgres через @prisma/adapter-pg.
Цікаві місця: єдиний пайплайн на Claude Vision робить і OCR (витягує назви продуктів із чеків або фотографій), і сам синтез рецептів; персональна комора користувача зберігається у PantryItem-рядках, які промпт для рецепта читає у момент генерації. WayForPay-інтеграція використовує той самий HMAC-MD5 патерн підписаних колбеків, що й у MyCalendar і BrandChecker, а невеликий cron-ендпойнт (POST /api/cron/cleanup, захищений shared secret) підчищає старі аплоади та записи запитів.
