graph TB
User[User Browser]
Google[Google OAuth]
Convex[Convex Backend]
MC[Minecraft Server]
subgraph Repo
Next["apps/blockwarriors-next"]
Backend["packages/backend"]
Beacon["apps/blockwarriors-beacon"]
Bots["apps/bot-orchestrator"]
Shared["packages/shared"]
end
User --> Next
Next --> Convex
Backend --> Convex
Beacon --> Convex
Bots --> MC
Next --> Shared
Backend --> Shared
Google --> Convex
MC --> Beacon
- Next.js 16
- React 18
- Tailwind + Radix
- Uses Convex client hooks and Better Auth integration
- Reads:
NEXT_PUBLIC_BASE_URLNEXT_PUBLIC_CONVEX_URLNEXT_PUBLIC_CONVEX_DEPLOYMENTNEXT_PUBLIC_CONVEX_SITE_URLCONVEX_SITE_URL
- Convex functions, auth, schema, HTTP routes, and seeds
- Shared backend used by the web app and Beacon plugin
- Reads:
SITE_URLGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETBETTER_AUTH_SECRETCONVEX_HTTP_SECRETCONVEX_SITE_URL
- Java/Paper plugin
- Polls Convex for match state and pushes telemetry/match updates
- Reads:
CONVEX_SITE_URLCONVEX_HTTP_SECRETsrc/main/resources/config.yml
- Next.js + Socket.IO + Mineflayer
- Runs a bot control panel and server-side orchestrator
- Reads:
PORTMINECRAFT_HOSTMINECRAFT_PORTDEBUG
- Shared TypeScript constants and response helpers
packages/shared/constants/game-config.jsonis the source of truth for game config- Beacon constants are regenerated from that file with
npm run codegen:beacon