This is a submission for Weekend Challenge: Passion Edition
What I Built
I built The Passion Podcast, a live AI-powered podcast studio that can turn almost any topic into a short, listenable episode.
The idea came from a very personal place: I genuinely love podcasts. I love how they make random interests feel intimate, how they turn curiosity into a daily habit, and how they create community around topics people care about. I also love space, tech, and tweaking tiny product details until they feel right, so I wanted to build something that felt like a futuristic podcast machine for people’s passions.
In the app, a user can enter a custom topic like space exploration, choose live sources, select a voice, and generate an episode. Gemini researches and writes the script, ElevenLabs turns it into audio, and the UI gives you a playable and downloadable episode.
Demo
Live demo: https://passion-podcast.netlify.app
Try generating something like:
space explorationAI filmmakingfootball tacticsclimate robotics- or any custom topic you care about
Code
GitHub repo: https://github.com/Ronlin1/passion-podcast
The Passion Podcast Live
Live AI-generated daily podcasts for any topic.
What is real
- Live source gathering from Google News RSS, Reddit search JSON, and Hacker News/Algolia.
- Gemini generates the episode title, summary, timed podcast script, source insights, and premium deep-dive outline.
- ElevenLabs turns the generated script into a real MP3 and saves it in
public/audio. - Episodes are stored locally in
data/episodes.json. - Snowflake storage is available when enabled in
.env. - Solana devnet premium unlock is available through Phantom when
SOLANA_RECEIVER_ADDRESSis set.
Setup
- Install dependencies:
npm install
-
Copy
.env.exampleto.env. -
Put your keys in
.env:
GEMINI_API_KEY=your_gemini_key
ELEVENLABS_API_KEY=your_elevenlabs_key
Optional ElevenLabs voice overrides:
ELEVENLABS_VOICE_ID=default_or_neutral_voice_id
ELEVENLABS_FEMALE_VOICE_ID=female_voice_id
ELEVENLABS_WARM_FEMALE_VOICE_ID=another_female_voice_id
ELEVENLABS_MALE_VOICE_ID=male_voice_id
- Start the app:
npm start
- Open:
http://localhost:8787
Optional Solana
Use devnet first.
SOLANA_CLUSTER=devnet
SOLANA_RECEIVER_ADDRESS=your_devnet_receiver_public_key
SOLANA_PREMIUM_SOL=0
In Phantom, switch to devnet and make sure the paying wallet has devnet SOL Leaving the premium price blank in the UI makes the…
How I Built It
The project is a full-stack JavaScript app deployed on Netlify.
The frontend is a custom podcast studio interface with topic chips, custom topic input, voice selection, live generation controls, an audio player, and a download button. I wanted it to feel less like a basic demo form and more like a product someone could actually use every morning.
On the backend, I used an Express API wrapped as a Netlify Function. The generation flow works like this:
- The user enters a topic.
- The app gathers live signals from news, Reddit, and forum-style sources.
- Gemini turns those signals into a structured podcast script.
- ElevenLabs generates the audio using the selected voice.
- The episode is returned to the UI with script, sources, audio, and premium metadata.
A big part of the work was making the demo production-friendly. Long audio generation can hit serverless limits, so I adjusted the live demo to generate a shorter polished episode reliably. The architecture can be extended into longer scheduled daily episodes with durable storage and background jobs.

I also added support for different voice options, including female voices, because podcasts are personal. The voice should match the listener’s taste.
There are also optional integration paths for Solana premium unlocks and Snowflake episode storage. For the live version, the strongest working flow is Gemini plus ElevenLabs, with Solana and Snowflake prepared as extension points.
Prize Categories
I am submitting for:
- Best Use of Google AI: Gemini powers the research-to-script generation flow.
- Best Use of ElevenLabs: ElevenLabs turns the generated script into a real playable podcast episode.
The app also includes optional foundations for Solana premium payments and Snowflake persistence, but the main live demo focuses on the working AI podcast generation experience.
Work in Progress
The Passion Podcast is still evolving. The current version proves the core experience: enter any topic, generate a live AI-written script, choose a voice, and listen to an audio episode. Next, I want to expand it into a true daily podcast engine with scheduled generation, user subscriptions, longer premium deep-dives, stronger topic memory, and persistent episode history across devices.
I’m also working on making the Solana and Snowflake integrations deeper. Solana will support premium unlocks for special episodes, while Snowflake can become the long-term warehouse for episodes, source metadata, listening patterns, and topic trends.
Challenges Faced
The biggest challenge was making the idea work reliably in production, not just locally. AI audio generation can take time, and serverless platforms have execution limits, so I had to adjust the generation flow to keep the demo fast and dependable.
Another challenge was balancing ambition with usability. I wanted live sources, Gemini-generated scripts, ElevenLabs audio, optional payments, storage, custom topics, voice selection, and a polished UI, but the app still needed to feel simple. A lot of the work went into small tweaks: clearer buttons, better spacing, production-safe messages, fallback handling, and making sure the experience didn’t break when one optional service was missing.



Top comments (0)