Podcast Discovery Platform
Context
A podcast discovery platform that uses Gemini to summarize episodes, so listeners can decide what is worth their time before pressing play.
The Hard Part
The product's entire value is summary quality: the 95% time saving only holds if the Gemini pipeline stays accurate as the summary library grows.
What I Built
- Gemini summarization pipeline — 500+ episode summaries generated
- Discovery interface on Next.js
- MongoDB for episode and summary storage
- User accounts serving 200+ users
The Build
The only way to evaluate an episode is to spend it
Podcasts have a discovery problem that most media does not. An article can be skimmed, a video can be scrubbed, a book has a contents page — each offers some cheap way to judge whether the expensive version is worth it. A podcast offers a title, cover art, and a description written to attract rather than to inform.
So the only reliable way to find out whether an episode is worth an hour is to spend the hour. That cost falls entirely on the listener, and it falls before they know whether it was worth paying — which is why people default to a handful of shows they already trust and rarely venture past them. The problem is not a shortage of podcasts; it is that sampling one is expensive and the expense is non-refundable.
A summary changes what the decision costs. Reading a short account of what an episode actually covers, rather than what its description implies, turns an hour-long commitment into a few seconds of judgment — and that is the entire proposition. The platform is not selling summaries. It is selling the ability to say no cheaply.
Quality is not a feature here, it is the product
The record states the constraint plainly: the product's entire value is summary quality, and the time saving only holds if the pipeline stays accurate as the library grows. That deserves unpacking, because it is a harsher requirement than it first sounds.
The dangerous failure is not an obviously broken summary — that is visible and gets ignored. It is a fluent, plausible summary of an episode that says something slightly different. A listener who skips an episode on the strength of a summary that missed the point has been actively harmed by the product, and will never find out. The error is invisible to the person it affects, which means it cannot be corrected by them noticing.
Podcast content also makes this harder than summarising written material. Conversation is unstructured: speakers digress, return to earlier points, talk over each other, and change position mid-discussion. There is no title hierarchy, no paragraphing, and no author having already decided what the through-line is. Summarising an article compresses something that was organised on purpose; summarising a two-person conversation means finding the structure first.
Then there is the growth clause in the constraint, which is the operationally difficult part. Quality that holds across a handful of episodes chosen during development is not the same as quality that holds across a growing library covering shows, formats, and subject matter nobody anticipated. A pipeline tuned on what was available early will meet material that behaves differently, and the failure will not announce itself — it will simply produce summaries that are a little less useful, for content nobody checked.
Where the difficulty actually sits
Almost none of the engineering effort in a product like this goes where a description of it suggests. The interface is a discovery surface on Next.js and the storage is episode and summary records in MongoDB — both are well-understood problems with well-understood answers.
The summarisation pipeline is where the product lives, and it is a pipeline rather than a call for a specific reason: episodes are long, processing them is slow, and the work has to happen ahead of the user rather than in front of them. Nobody waits while an hour of audio is analysed. Summaries have to exist before anyone looks for them, which makes this batch work whose output is browsed later, not a request-response feature.
That framing also explains why the library is the asset rather than the model. A summary, once generated, is read many times by many people — the cost is paid once and the value accrues continuously, which is a far better economic shape than generating on demand. It also means the storage layer is holding the expensive part of the system, and that regenerating everything is a decision with a real price attached rather than a refresh.
User accounts sit on top of that shared library. What distinguishes users is what they are looking for, not what has been summarised for them, so the expensive artefact stays common while personalisation happens above it.
Reading the three numbers
The 95% time saving is a ratio rather than a measurement of the product's cleverness: it is the difference between the seconds a summary takes to read and the length of the episode it describes. Stating it that way makes clear why the constraint is worded as it is — the figure is arithmetic, and the only thing that can invalidate it is a summary that fails to reflect its episode. Nothing about the ratio survives a summary being wrong.
500+ summaries describes the library, which for a discovery product is closer to inventory than to output. A discovery tool covering very little is not a discovery tool; the value of any individual summary depends on there being enough of them that a listener can browse rather than look something up.
200+ users is the number that tests whether the other two mean anything. Time saved is a claim about value, and coverage is a claim about usefulness, but people returning to a tool for deciding what to listen to is the only evidence that the summaries are trusted enough to act on — which is the thing the whole product depends on and the one that cannot be asserted from the inside.
Measured Results
500+
summaries
95%
time saved
200+
users
Tech Stack
More Case Studies
Have a similar project?
I would love to help you build something great. Let's discuss your requirements.