LingoMeet
Live practice, translated in real time.
A Pakistan-first language-learning + social mobile app — chat, voice/video, AI auto-translation and teacher livestreams. Fully architected, pre-MVP.
Flutter 3 · NestJS 10 · LiveKit · PostgreSQL + Redis · Gemini + Claude
Language learners want live human practice, not just drills — but real-time voice and video with translation is genuinely hard to architect affordably. LingoMeet is the full technical design for that product: chat, voice/video, AI auto-translation and teacher livestreams.
It's listed honestly as architected — the architecture and phased build plan are complete; it's pre-MVP. The design is what's real here, and it's stated as such.
Animated architecture breakdown — nodes and data paths resolve in sequence.
The architecture
A Flutter client (Riverpod for state, Drift for local data) talks to a NestJS + Prisma backend over PostgreSQL and Redis. The plan is phased — chat first, then voice/video, then the translation layer, then teacher livestreams — so each capability is a shippable increment rather than a big-bang launch.
Real-time stack
Voice and video run over LiveKit rather than a hand-rolled WebRTC mesh, because managing SFU scaling and NAT traversal yourself is a project in itself. Redis carries presence and ephemeral real-time state.
The translation layer
Auto-translation sits between participants using Gemini and Claude, so two learners without a shared language can still practise. This is the feature that turns a video-call app into a language product.
Economics & hosting
Media lives in Cloudflare R2, payments run through Stripe and PayFast for the Pakistani market, and the whole thing is designed to self-host on Hetzner — a cost structure chosen deliberately so real-time media doesn't make the unit economics impossible.
Proof. Architecture and phased build plan complete; pre-MVP.