A pnpm monorepo with one populated shared package. Apps deploy as independent Docker containers on a private EU-region VPS, fronted by an automated-TLS edge proxy. Postgres + Redis on the same internal network — neither is publicly reachable. Boring on purpose — every part is debuggable in isolation, every contract is typed, every deploy is a signed image pull plus a single shell script. Six compose services: postgres, redis, frontend, backend, worker, discord-bot.
- apps/frontend — Next.js 15 (App Router) storefront, customer area, booster workspace, admin console.
- apps/backend — Fastify 5 HTTP API, Drizzle + Postgres 16, OpenAPI/Swagger UI at /api/docs.
- apps/worker — BullMQ consumer plus 60s assignment-engine sweep.
- apps/discord-bot — Discord.js 14 gateway: anonymous order rooms, identity links, slash commands.
- packages/contracts — pricing rules, queue/job constants, shared zod-style types.

- Deep dive · 02
Order state machine
Nine DB statuses; six surfaced to customers. Every transition emits a typed audit event.
- Deep dive · 03
Eligibility-aware auto-assign
Two groups, two rounds each. Per-booster game / service / rank / max-order-value caps. 30-min default timer.
- Deep dive · 04
Anonymous Discord ops rooms
Discord is the ops UI. Per-order private channels named from a UUID hex. Reaction-driven ratings. Discord-as-admin-console.
- Deep dive · 05
Stripe pricing parity + rewards
Shared pricing module so FE / BE / Stripe agree to the cent. 3% processor fee as a transparent line item.
- Deep dive · 06
Operator console + live SSE
Calm, keyboard-first, audit-first. Real-time updates via Redis pub/sub → SSE; engine pause / resume / start as first-class controls.
Got something
this size?
Big ambitions, we match the energy. Drop a brief — reply within one working day.