# Podcast Architecture & Implementation Plan ## Overview Convert Daily Digest blog posts into a podcast format with automated TTS generation, RSS feed for distribution, and Supabase Storage for audio file hosting. ## Architecture ### 1. Database Schema Updates Add `audio_url` and `audio_duration` fields to the `blog_messages` table. ### 2. TTS Generation **Option A: Piper TTS (Recommended - Free)** - Local execution, no API costs - High quality neural voices - Fast processing - No rate limits **Option B: OpenAI TTS (Paid)** - Premium quality voices - Simple API integration - ~$2-4/month for daily 5-min content ### 3. Audio Storage - **Provider**: Supabase Storage - **Bucket**: `podcast-audio` - **Cost**: Free tier includes 1GB storage - **Access**: Public read via signed URLs ### 4. RSS Feed Generation - **Endpoint**: `/api/podcast/rss` - **Format**: RSS 2.0 with iTunes extensions - **Compatible with**: Apple Podcasts, Spotify, Google Podcasts - **Auto-updates**: Pulls from blog_messages table ### 5. Integration Points 1. **Daily Digest Workflow** (`/api/digest` POST): - After saving post, trigger async TTS generation - Upload audio to Supabase Storage - Update database with audio_url 2. **RSS Feed** (`/api/podcast/rss`): - Returns XML RSS feed - Includes all posts with audio_url 3. **Podcast Page** (`/podcast`): - Web player for each episode - Subscribe links - Episode list ## Implementation Steps ### Phase 1: Database & Storage Setup 1. Create `podcast-audio` bucket in Supabase 2. Add columns to blog_messages table ### Phase 2: TTS Service 1. Create `src/lib/tts.ts` - TTS abstraction 2. Create `src/lib/storage.ts` - Supabase storage helpers 3. Create `src/scripts/generate-tts.ts` - TTS generation script ### Phase 3: API Endpoints 1. Create `src/app/api/podcast/rss/route.ts` - RSS feed 2. Update `src/app/api/digest/route.ts` - Add TTS trigger ### Phase 4: UI 1. Create `src/app/podcast/page.tsx` - Podcast page 2. Update post display to show audio player ### Phase 5: Documentation 1. Create `PODCAST_SETUP.md` - Setup instructions 2. Update README with podcast features ## Cost Estimate - **Piper TTS**: $0 (local processing) - **OpenAI TTS**: ~$2-4/month - **Supabase Storage**: $0 (within free tier 1GB) - **RSS Hosting**: $0 (generated by Next.js API) - **Total**: $0 (Piper) or $2-4/month (OpenAI) ## File Structure ``` src/ ├── app/ │ ├── api/ │ │ ├── digest/route.ts (updated) │ │ └── podcast/ │ │ └── rss/route.ts (new) │ ├── podcast/ │ │ └── page.tsx (new) │ └── page.tsx (updated - add audio player) ├── lib/ │ ├── tts.ts (new) │ ├── storage.ts (new) │ └── podcast.ts (new) └── scripts/ └── generate-tts.ts (new) ```