RecipeAI — System Design
8 components · 8 links · 5 zones
Loading graph…
Legend
- Standard node
- External / inferred (dashed)
- Database / persistent store
- Load balancer / proxy
- Zone band (small-caps title)
- Link / dependency
- Data flow (dashed)
- Bidirectional (request/response)
Inferred components — evidence
- Groq Chat API — src/app/api/generate-recipe/route.ts: fetch('https://api.groq.com/openai/v1/chat/completions') with Bearer auth; model from GROQ_MODEL (default llama-3.1-8b-instant).
- Unsplash Image CDN — next.config.ts remotePattern images.unsplash.com; URLs in predefined/page.tsx, saved/page.tsx, recipe/[id]/page.tsx via next/image.
- Environment Config — process.env.GROQ_API_KEY / GROQ_API_KEY_BACKUP / GROQ_MODEL read in route.ts; defined in .env.local. Not a network service; modelled as an inferred secret source.
- No standalone database, cache, broker, gateway, or load balancer exists. Persistence is browser localStorage; the recipe corpus is a static in-memory ES module.
- There is no authentication subsystem; "auth" toward Groq is a server-held API key. *[unresolved]* user identity / session — none present.