
LMS orientato a sessioni interattive con agenti vocali AI, pensato per scalare e integrare onboarding, pagamenti, gestione utenti, contenuti e tracking errori. Le sessioni con AI sono low‑latency e multilingua, con conversazioni personalizzabili per materia, topic e stile didattico.
Gestione utenti e piani tramite Clerk con UI componibile e policy centralizzate. I flussi di iscrizione e upgrade sono pensati per essere frictionless, con controllo dei permessi in base al tier. Esempi: auth().userId per ottenere l’utente corrente, currentUser() per profilo, hasActivePlan(userId) per gating delle feature.
Vapi abilita conversazioni vocali realtime con TTS/STT e selezione del modello AI. I tutor possono essere creati e salvati con meta‑informazioni (subject, topic, tone). Avvio sessione esemplificato da new VapiClient({ token: process.env.NEXT_PUBLIC_VAPI_WEB_TOKEN }) e client.start({ assistant: ..., user: ... }).
Supabase fornisce Postgres gestito con API istantanee e canali realtime per stati sessione, preferenze utente e catalogo tutor. Pattern tipico: createClient(url, anonKey) e operazioni CRUD tipizzate con validazioni lato server.
UI accessibile con Tailwind + shadcn/ui, dark mode e componenti composabili. Form con React Hook Form e risoluzione schema via Zod. Snippet tipico: useForm({ resolver: zodResolver(schema) }) con schema definito via z.object({ ... }) per garantire coerenza client/server.
Sentry per error tracking e performance, con breadcrumbs e release tracking per diagnosi veloci. Log strutturati e boundary UI migliorano la resilienza dei flussi critici (auth, pagamento, sessione AI).