Inspiration
Podcasts are a great way to learn, but most of them are made for a general audience. They are not personalized to what you want to learn or the exact amount of time you have.
If your drive to work takes thirteen minutes, a thirty minute episode does not fit. Yappa.ai creates a debate podcast for your topic and your schedule, so you can start listening before you leave and finish just as you arrive.
We also wanted to make learning feel more thoughtful. Learning often starts with a question, but most tools rush to give us one answer. Debates create room for curiosity because they show the assumptions behind an idea, the evidence supporting it, and the reasons someone might disagree.
That idea became Yappa.ai. We wanted to make learning feel less like reading a summary and more like listening in on a thoughtful conversation.
What it does
Yappa.ai turns a question into a custom length debate podcast.
A user chooses a topic and the amount of time they have available. Yappa.ai researches the subject, creates two opposing perspectives, verifies the supporting sources, and produces a podcast where two AI speakers debate the question.
Each episode includes:
- A two sided debate with distinct perspectives
- Source backed claims and references
- A full transcript
- Point by point attribution showing which AI made each argument
- Custom podcast lengths for commutes, workouts, study sessions, or quick breaks
- A companion article summarizing the main ideas
- The ability to listen to the audio or read the debate directly
The goal is not to tell users what to believe. It is to help them understand a question well enough to form their own view.
How we built it
Yappa.ai is built as a Bun monorepo with a Next.js web application, a Hono API, and a SQLite database managed through Drizzle ORM.
The web app handles the landing page, public podcast pages, the podcast workspace, transcripts, source references, scheduling, authentication dialogs, and pricing surfaces.
On the backend, the podcast pipeline works in several stages:
- The user submits a topic and selects a duration.
- OpenAI helps research and structure the debate.
- Claims are connected to source references and checked before they are used.
- A transcript agent writes the conversation between the two speakers.
- The transcript goes through an editorial review for factual accuracy, rhythm, attribution, and length.
- Fish Audio converts the approved transcript into speech.
- The finished podcast, transcript, sources, and article are saved and made available to the user.
For longer episodes, the audio is generated through Fish Audio's streaming endpoint and processed in chunks. This lets Yappa.ai support longer debates without treating the entire episode as one blocking request.
Challenges we ran into
The hardest part was making a generated podcast feel intentional instead of just technically complete.
Early versions could produce strong arguments, but the conversations sometimes felt too short, too symmetrical, or too much like two essays being read aloud. We improved the transcript instructions so the speakers would respond to one another, challenge assumptions, concede strong points, and develop their ideas naturally.
Audio generation created another challenge. A recent ten minute podcast failed because the entire transcript was sent as one blocking request with a strict timeout. We changed the pipeline to use streaming synthesis and chunked audio responses instead.
We also discovered that a transcript could pass a quality review while still being too short for the requested duration. To address this, we added explicit spoken word targets, transcript word counting, revision passes, and a quality gate that rejects a transcript if it is not long enough.
There were also smaller product challenges, including making long transcripts scroll correctly, keeping podcast cards consistent across different content lengths, making the hero section behave properly on scroll, and keeping the public experience useful without forcing users to sign in immediately.
Accomplishments that we're proud of
We are proud that Yappa.ai is more than an audio generator. It connects the entire learning experience together.
A user can discover a question, hear two perspectives, inspect the sources, read the transcript, and continue exploring without leaving the episode. The product is also designed around real time constraints. Someone can create a short debate for a three minute commute or a longer conversation for a study session.
We are especially proud of the transcript and source experience. The transcript is not treated as a hidden technical artifact. It is a first class part of the product, with attribution and supporting references that make the reasoning easier to inspect.
We also built the system to be honest about quality. A podcast is not marked ready simply because audio exists. It needs an approved transcript, enough spoken content for the requested duration, verified sources, and a successful audio generation step.
What we learned
We learned that good AI products need editorial structure, not just model access.
A language model can create convincing sentences very quickly, but a useful learning experience requires stronger constraints. The system needs to know how long the episode should be, which claims are supported, how the speakers should respond, and when a transcript is not good enough yet.
We also learned that audio changes how writing should work. A transcript that looks fine on a screen may sound repetitive when spoken aloud. Short turns, varied pacing, clear speaker roles, and natural transitions matter much more in a podcast.
Most importantly, we learned that disagreement can be a learning interface. When two perspectives are presented clearly and fairly, users get more than an answer. They get a way to examine their own assumptions.
What's next for Yappa.ai: debate podcasts for deeper learning.
Next, we want to make Yappa.ai more personal and more useful over time.
We plan to improve voice variety, pacing, and pronunciation, especially for people using debates to learn a new language. We also want to let users save topics, build listening histories, revisit sources, and create a sequence of connected episodes around a larger subject.
Another important direction is better interaction with the debate itself. Users should be able to pause on a claim, explore its evidence, ask for clarification, or continue down one side of the argument.
Our long term goal is simple: make learning fit naturally into the time people already have, while giving them enough depth to think for themselves.
Built With
- fish
- hono
- next.js
- openai-api
- react
- shadcn/ui
- sqlite
- tailwind-css
- typescript

Log in or sign up for Devpost to join the conversation.