mymuaythai.app is a platform connecting Muay Thai gyms, trainers, and students across Thailand. Joe had the vision, the community, and the groundwork — I own the architecture, the stack decisions, and the delivery. Monorepo with four separate apps (iOS/Android, web, admin, job board) sharing Supabase schemas and TypeScript types.
Key decisions
- → Monorepo from day one: Four separate apps sharing Supabase schemas and TypeScript types. One PR updates shared logic across all surfaces.
- → Supabase as the entire backend: No Express server. Supabase handles auth (PKCE for iOS), database, real-time subscriptions for chat, Edge Functions for business logic, and RLS as the authorization layer.
- → Stripe web-only (no 30% Apple cut): Payments flow through the web app. Mobile deep-links to web checkout. Fully compliant — gyms keep 30% more revenue.
- → LLM translation in chat: Real-time Thai ↔ English translation using LLMs with sub-second latency. Trainers and students communicate without a shared language.
Stack
Expo SDK 53 · React Native 0.79 · NativeWind · Expo Router · React 18 (web) · React 19 (admin) · Vite 5/7 · Supabase · Stripe · Cloudflare · AWS