Infrastructure Map
What runs where, and how the pieces connect. Derived from the workspace CLAUDE.md; keep it in sync
when deploys move.
Applications
| App | What it is | Stack | Hosted on |
|---|---|---|---|
| website | Customer site + PayloadCMS | Next.js 14 + Payload 3 (Turborepo, pnpm) | Vercel (team “Hello Bello”) |
| meatball | Primary GraphQL backend (subscriptions, orders, payments, jobs) | Apollo Server 4, TypeORM/MySQL, BullMQ, Inngest | Render.com (6 API + 4 worker + 16 crons) |
| subscriptions-api | Legacy Recharge/Shopify bundle API (still in prod) | Koa + Apollo, Prisma/MySQL, PM2 | ⚠️ VERIFY (PM2 — host?) |
| cloud-party | D365 ↔ Shopify sync (cron + REST API) | Fastify, Prisma/MySQL, PM2 | AWS Elastic Beanstalk |
| cs-app | Internal customer-service portal | Next.js 12 (Pages), Ant Design, Auth0 | Render.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
| Store | Used by | Provider |
|---|---|---|
| MongoDB | website / PayloadCMS | ⚠️ VERIFY (Atlas?) |
| MySQL | meatball, subscriptions-api, cloud-party | ⚠️ VERIFY (managed where?) |
| Redis | meatball (BullMQ), subscriptions-api | ⚠️ VERIFY |
| S3 | meatball (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/imageresizer onhellobellocdn.com, pulling raw files frommedia.hellobellocdn.com.
Deploy triggers
| App | Trigger |
|---|---|
| website | Vercel auto-deploys on push to main (production branch). Note: a missed Vercel webhook has happened — see runbooks. |
| meatball / cs-app | Render auto-deploy from default branch |
| cloud-party | GitHub Actions → Elastic Beanstalk (.github/workflows/prod.yml) |
| shared libs | semantic-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.