Architecture Overview
Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js, React, TailwindCSS, shadcn/ui |
| Backend | Hono (API), Zod (validation), OpenAPI |
| Database | MongoDB + Mongoose |
| Monorepo | Yarn Workspaces + Turborepo |
| Testing | Vitest |
| CI/CD | Vercel |
General flow
┌─────────────┐ ┌─────────────┐ ┌──────────┐
│ Console │────▶│ API │────▶│ MongoDB │
│ (Next.js) │◀────│ (Hono) │◀────│ │
└─────────────┘ └─────────────┘ └──────────┘
│
┌─────┴─────┐
│ Worker │
│ Scheduler │
└───────────┘
Apps
- app-*: Participant experience (ticket purchase, check-in)
- bko-*: Internal backoffice (event management, reports)
- hub-*: Organizer dashboard (event creation, sales)
- landing: Public event landing pages
- worker: Async processing (emails, webhooks)
- scheduler: Scheduled cron jobs
Shared packages
Packages under packages/ are shared across apps. They all export through index.ts and follow the @nittio/<name> convention.