Skip to content

System Map

Beef is organized around a small set of services:

  • sirloin: main Go API, gRPC and REST, billing, media state, credits, shop, admin, and runtime persistence.
  • brain: NestJS service with Prisma, generation records, character metadata, queues, and integrations with model providers.
  • round: Go gRPC model-serving service for ONNX inference.
  • strip: Go SSR frontend using Templ and Tailwind.
  • brisket: Next.js user-facing frontend.
  • flank: TanStack Start visual workflow editor for the brain-owned workflow engine; reads and writes brain over HTTP.
  • fennec: React dashboard that calls Brain over HTTP.
  • chuck: Strapi CMS consumed by Brisket.
  • shank: React Email source exported into Sirloin.
  • horns: Cloudflare Workers, currently Linear-to-Slack reporting.
flowchart LR
  Brisket[brisket frontend] --> Sirloin[sirloin API]
  Strip[strip SSR frontend] --> Sirloin
  Sirloin --> Brain[brain service]
  Sirloin --> Round[round model serving]
  Brain --> Round[round model serving]
  Brain -->|completion webhook| Sirloin
  Flank[flank workflow editor] --> Brain
  Flank -->|playground search| Sirloin
  Fennec[fennec dashboard] --> Brain
  Brisket --> Chuck[chuck CMS]
  Brain --> Postgres[(Postgres)]
  Sirloin --> Postgres
  Brain --> Redis[(Redis / BullMQ)]
  Sirloin --> Chargebee[Chargebee]
  Sirloin --> Primer[Primer]
  • Read Architecture / Services for responsibilities and boundaries.
  • Read Flows for request and async workflow behavior.
  • Read Standards for agreed constants and maintenance rules.
  • Read Decisions for why durable architectural choices were made.