27 Sept 🎟️ Fundamentals of AI · free, 50 seats Save my seat → For teams AI in Practice · dates being set now Join the waitlist →
Namaste Ji by Ayushman Dash

What it runs on: one Cloudflare account, wired like this.

A quick tour of the parts first. A Worker is a small serverless program; D1 is SQLite; KV is a key-value store for config; R2 holds files; Queues pass work between Workers; Vectorize answers 'what's similar to this?'; the AI Gateway is the one door every model call goes through. This whole system is seven Workers sharing fourteen such resources — and the diagram below isn't an illustration of that, it's generated from the infrastructure code itself at every build, so it can't drift from reality.

Workers on the left, what they use on the right.

Each line is a binding — a private, named connection from a Worker to a resource, declared in that Worker's config. Follow any Worker's lines to see everything it can touch; anything it has no line to, it cannot reach. Colours group the resource types.

generated from the infrastructure code and each Worker's config, on every build

console-api → namaste-ji-console-staging · DBconsole-api → namaste-ji-catalog-staging · CATALOG_DBconsole-api → bo-config · CONFIGconsole-api → namaste-ji-content-staging · CONTENTconsole-api → namaste-ji-jobs-staging · produceconsole-api → namaste-ji-catalog-staging · CATALOGconsole-api → ai-gateway · AIconsole-api → lab-projection-staging · LabProjectionWorkflowconsole-api → secrets-store · langfuse-secret-keyconsole-api → secrets-store · langfuse-public-keyconsole-api → secrets-store · cloudflare-ai-gateway-tokenconsumer-api → namaste-ji-consumer-staging · DBconsumer-api → namaste-ji-catalog-staging · CATALOG_DBconsumer-api → bo-config · CONFIGconsumer-api → namaste-ji-content-staging · CONTENTcontent-creator → namaste-ji-catalog-staging · CATALOG_DBcontent-creator → bo-config · CONFIGcontent-creator → namaste-ji-content-staging · CONTENTcontent-creator → namaste-ji-jobs-staging · producecontent-creator → namaste-ji-content-render-staging · producecontent-creator → namaste-ji-content-embed-staging · producecontent-creator → namaste-ji-content-render-staging · consume ×3/10scontent-creator → namaste-ji-content-embed-staging · consume ×10/3scontent-creator → namaste-ji-content-dlq-staging · consume ×10/30scontent-creator → namaste-ji-catalog-staging · CATALOG_VECTORIZEcontent-creator → secrets-store · cloudflare-ai-gateway-tokencontent-director → namaste-ji-creative-head-staging · BRIEFS_DBcontent-director → namaste-ji-catalog-staging · CATALOG_DBcontent-director → bo-config · CONFIGcontent-director → namaste-ji-jobs-staging · producecontent-director → namaste-ji-content-render-staging · producecontent-director → content-director-run · RunWorkflowcontent-director → secrets-store · cloudflare-ai-gateway-tokencontent-director → secrets-store · sarvam-api-keycontent-director → secrets-store · langfuse-public-keycontent-director → secrets-store · langfuse-secret-keycreative-head → namaste-ji-creative-head-staging · DBcreative-head → bo-config · CONFIGcreative-head → ai-gateway · AIcreative-head → creative-head-run · RunWorkflowcreative-head → secrets-store · langfuse-secret-keycreative-head → secrets-store · langfuse-public-keycreative-head → secrets-store · cloudflare-ai-gateway-tokencreative-head → secrets-store · sarvam-api-keycreative-head → secrets-store · tavily-api-keyevents-calendar → namaste-ji-events-staging · DBevents-calendar → bo-config · CONFIGevents-calendar → ai-gateway · AIevents-calendar → events-calendar-run · RunWorkflowevents-calendar → CalendarMCPServer · CALENDAR_MCPevents-calendar → secrets-store · langfuse-secret-keyevents-calendar → secrets-store · langfuse-public-keyevents-calendar → secrets-store · cloudflare-ai-gateway-tokenevents-calendar → secrets-store · sarvam-api-keyevents-calendar → secrets-store · tavily-api-keyheimdall → namaste-ji-catalog-staging · CATALOG_DBheimdall → bo-config · CONFIGheimdall → namaste-ji-content-staging · CONTENTheimdall → ai-gateway · AIheimdall → heimdall-eval-run-staging · EvalRunWorkflowheimdall → secrets-store · cloudflare-ai-gateway-tokenheimdall → secrets-store · sarvam-api-keyheimdall → secrets-store · langfuse-public-keyheimdall → secrets-store · langfuse-secret-key console-api on demand consumer-api on demand content-creator on demand content-director cron */15 * * * * creative-head cron 0 5 * * * events-calendar cron 0 2 * * * heimdall cron 0 */6 * * * D1 catalog D1 console D1 consumer D1 creative-head D1 events KV bo-config R2 content Queue content-dlq Queue content-embed Queue content-render Queue jobs Vectorize catalog AiGateway AI Gateway · Workers AI Workflow content-director-run Workflow creative-head-run Workflow events-calendar-run Workflow heimdall-eval-run Workflow lab-projection DurableObject CalendarMCPServer SecretsStore Secrets Store WORKERS (7) RESOURCES (20) — provisioned by Alchemy
  • d1
  • kv
  • r2
  • q-out
  • q-in
  • vec
  • ai
  • wf
  • do
  • secret

Who talks to whom — off the public internet.

An arrow means one Worker can call another directly, inside Cloudflare's network. Note the shape: everything routes through the console's API. No agent has its own public address, so the only doors into the system are the two apps.

console-api

calls → events-calendar, creative-head, content-director, content-creator, heimdall, consumer-api

called by ← content-creator, content-director, creative-head, events-calendar, heimdall

routes bo-staging.namasteji.org/api/* · public.namasteji.org/api/* · demo.namasteji.org/api/*

workflows LabProjectionWorkflow

consumer-api

called by ← console-api

routes app-staging.namasteji.org/api/*

content-creator

calls → console-api

called by ← console-api

consumes content-render (batch 3/10s, retries 5, DLQ) · content-embed (batch 10/3s, retries 5, DLQ) · content-dlq (batch 10/30s, retries 1)

content-director

calls → console-api

called by ← console-api

cron */15 * * * *

workflows RunWorkflow

creative-head

calls → events-calendar, console-api

called by ← console-api

cron 0 5 * * *

workflows RunWorkflow

events-calendar

calls → console-api

called by ← console-api, creative-head

cron 0 2 * * *

workflows RunWorkflow

heimdall

calls → console-api

called by ← console-api

cron 0 */6 * * *

workflows EvalRunWorkflow

Hosting — Pages projects and doors.

namaste-ji-console-staging

the back-office console (Vite+React) — same project, two doors

bo-staging.namasteji.org · demo.namasteji.org

Access: bo-staging.namasteji.org

namaste-ji-app-staging

the consumer web app

app-staging.namasteji.org

namaste-ji-showcase

this site (Astro)

namasteji.aiwithayushman.com