Hey everyone — I’ve been building Classp, a lecture companion for university students who find it difficult to listen, understand, and take complete notes at the same time, especially when the lecture is not in their strongest language.

The workflow starts when class begins:
- transcribe the lecture live
- show an optional provisional translation
- build an incremental summary while the lecture is still happening
- keep the finalized transcript for review
- turn the same lecture into a structured summary, quiz, flashcards, mind map, and infographic afterward


Live product: https://www.classp.ai/en
The most interesting engineering problem was separating fast-changing classroom state from durable lecture content.
During a session, the browser receives interim and finalized transcription results. Interim text needs to feel immediate, so it can drive a provisional translation without being treated as permanent content. Finalized utterances are stored as ordered transcript segments and become the source for incremental summaries and post-class study materials.
For the AI layer, each task has its own primary and fallback model configuration. Translation, real-time summaries, quizzes, flashcards, mind maps, and other study tools are routed through Vercel AI Gateway. Model usage and latency are recorded asynchronously so metering does not block the response path.
The main stack:
- Next.js 16 and React 19, deployed on Vercel
- Vercel AI SDK and AI Gateway for model routing and streaming
- Vercel Blob for uploaded lecture materials
- Vercel Analytics
- Deepgram Nova-3 for real-time speech transcription
- Neon Postgres and Drizzle for sessions, transcripts, and usage data
- Clerk for authentication
- Stripe for subscriptions
One design constraint I cared about was keeping the product lecture-first. The live transcript, translation, and summary are not separate tools; they all belong to the same session and continue into the post-class review workflow.
I’d especially appreciate feedback on two things:
- Is the transition from “live lecture” to “post-class review” clear from the landing page?
- Have you found useful patterns for managing long-running browser audio sessions alongside streamed AI work in a Next.js application?
Thanks for taking a look.