All case studies

Independent · 2025

Learner

Real-time voice AI tutors you can talk to, built end to end.

Learner’s dashboard: popular companions such as a Next.js tutor and a Swahili tutor, and recent sessions.

The project

An independent product: users create voice “companions” (AI tutors) for any subject and run live teaching sessions with them.

Role
Design, build and deploy · independent
Stack
  • Next.js 15
  • React 19
  • Vapi
  • Clerk
  • Supabase
  • Tailwind 4

The problem

Tutoring is a conversation, not a chat box. The product had to hold a real-time voice session together across speech recognition, a language model and speech synthesis, and still feel like a normal web app.

What I did

  • Built on Next.js 15’s App Router with Server Components and Server Actions, on React 19.
  • Real-time voice through Vapi over WebRTC: Deepgram Nova-3 for speech-to-text, GPT-4 for the conversation, ElevenLabs for the voice.
  • Clerk for authentication and subscriptions (free users get three companions, Pro is unlimited), Supabase Postgres for companions, session history and bookmarks.
  • Designed for failure: production error handling and graceful degradation when a voice service drops.

What changed

A live product: anyone can build a companion for a subject, search a shared library, hold a voice lesson with a transcript, and pick up their history later.