Unified Service Model
3-dimension architecture: deliveryMode (live/async/hybrid) x groupType (individual/group/open) x structure (single/package/course/subscription). One model to rule them all.
Unified Service Model
3-dimension architecture: deliveryMode (live/async/hybrid) x groupType (individual/group/open) x structure (single/package/course/subscription). One model to rule them all.
Stripe Connect Payments
Teachers connect their own Stripe account. Money goes directly to them. Full webhook integration for enrollment lifecycle.
Google Calendar & Drive
Availability synced from Google Calendar. Drive file auto-copy to student folders. Circuit breaker + rate limiting for resilience.
Student CRM
Lifecycle tracking, mood feedback, contact log, preferred booking hours, GDPR compliance with data export and erasure.
| Metric | Count |
|---|---|
| Database tables | 55 |
| Backend services | 56 |
| API route files | 34+ |
| UI components | 25 |
| i18n keys | 4,300+ |
| Email templates | 15 |
| Background workers | 9 |
Monorepo: Turborepo + Bun workspaces (5 packages) Frontend: React 19 + Vite 6 + TanStack Router + TanStack Query 5 + shadcn/ui + Tailwind CSS 4 Backend: Fastify 5 + Node.js 22 Database: PostgreSQL 16.9 + Drizzle ORM Auth: Google OAuth (teachers) + Magic Links (students) Payments: Stripe Connect Integrations: Google Calendar API v3 + Google Drive API v3 Jobs: BullMQ + Redis