Infrastructure Map

Infrastructure Map

What runs where, and how the pieces connect. Derived from the workspace CLAUDE.md; keep it in sync when deploys move.

Applications

AppWhat it isStackHosted on
websiteCustomer site + PayloadCMSNext.js 14 + Payload 3 (Turborepo, pnpm)Vercel (team “Hello Bello”)
meatballPrimary GraphQL backend (subscriptions, orders, payments, jobs)Apollo Server 4, TypeORM/MySQL, BullMQ, InngestRender.com (6 API + 4 worker + 16 crons)
subscriptions-apiLegacy Recharge/Shopify bundle API (still in prod)Koa + Apollo, Prisma/MySQL, PM2⚠️ VERIFY (PM2 — host?)
cloud-partyD365 ↔ Shopify sync (cron + REST API)Fastify, Prisma/MySQL, PM2AWS Elastic Beanstalk
cs-appInternal customer-service portalNext.js 12 (Pages), Ant Design, Auth0Render.com

Shared libraries @launched-la/hb-shared and @launched-la/subscriptions-api-types publish to GitHub Packages via semantic-release on push to master.

Data stores

StoreUsed byProvider
MongoDBwebsite / PayloadCMS⚠️ VERIFY (Atlas?)
MySQLmeatball, subscriptions-api, cloud-party⚠️ VERIFY (managed where?)
Redismeatball (BullMQ), subscriptions-api⚠️ VERIFY
S3meatball (assets)AWS

Edge / DNS / CDN

                 ┌─────────────────────────── Cloudflare ───────────────────────────┐
   user ───▶ DNS │  hellobello.com  ─▶ Vercel (website)                              │
                 │  hellobellocdn.com/cdn-cgi/image/...  ─▶ image resizing worker    │
                 │        └─ pulls origin ─▶ media.hellobellocdn.com                 │
                 │  Cloudflare Access  ─▶ gates this Ops Handbook                     │
                 └───────────────────────────────────────────────────────────────────┘
  • DNS for our domains is served by Cloudflare, even though the registrars differ (GoDaddy for most, Squarespace for hellobellocdn.com). Registrar ≠ DNS host — keep them straight.
  • Images flow through Cloudflare’s /cdn-cgi/image resizer on hellobellocdn.com, pulling raw files from media.hellobellocdn.com.

Deploy triggers

AppTrigger
websiteVercel auto-deploys on push to main (production branch). Note: a missed Vercel webhook has happened — see runbooks.
meatball / cs-appRender auto-deploy from default branch
cloud-partyGitHub Actions → Elastic Beanstalk (.github/workflows/prod.yml)
shared libssemantic-release on push to master → GitHub Packages

⚠️ VERIFY everything marked above against the actual dashboards. This map is seeded from docs, not from a live audit — confirm each host/provider and stamp it Last verified: YYYY-MM-DD.