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

  1. 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).
  2. 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.
  3. 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.
  4. No standalone database, cache, broker, gateway, or load balancer exists. Persistence is browser localStorage; the recipe corpus is a static in-memory ES module.
  5. There is no authentication subsystem; "auth" toward Groq is a server-held API key. *[unresolved]* user identity / session — none present.