/ tech-stacks / Best Tech Stack for a Podcast Platform as a Solo Developer
tech-stacks 6 min read

Best Tech Stack for a Podcast Platform as a Solo Developer

The best tech stack for building a podcast platform as a solo developer - frameworks, databases, hosting, and tools.

Best Tech Stack for a Podcast Platform as a Solo Developer

The podcast market is worth over $25 billion and growing. Whether you're building a podcast hosting service, a discovery platform, a private podcast tool for businesses, or a niche listening app, the technical challenges are consistent: audio file management, RSS feed generation, a clean player UI, and reliable media delivery. As a solo developer, you need a stack that handles large file uploads and streaming without breaking the bank.

Here's the stack that balances performance, cost, and development speed.

Layer Pick
Frontend Next.js (React)
Backend Next.js API routes + tRPC
Database PostgreSQL (via Prisma)
Audio Storage Cloudflare R2 or Backblaze B2
CDN Cloudflare
Audio Processing FFmpeg (serverless)
Hosting Vercel (frontend) + Railway (workers)
Payments Stripe

Frontend: Next.js

A podcast platform is content-heavy with public-facing pages that need strong SEO. Next.js gives you server-side rendering for podcast and episode pages (critical for search discoverability), client-side interactivity for the audio player, and API routes for your backend logic.

The audio player is the heart of your UX. Build a persistent player component that stays at the bottom of the viewport and continues playing as users navigate between pages. Next.js's client-side navigation makes this seamless. The player state persists because it lives outside the page component tree.

Use the Web Audio API or a lightweight library like Howler.js for the player. Don't pull in a heavy media framework when you just need play, pause, seek, and speed control.

For the podcast discovery and browsing UI, lean on server components. Episode listings, show pages, and category browsing should all be server-rendered for fast initial loads and SEO.

Backend: Next.js API Routes + tRPC

For a solo developer, keeping frontend and backend in one codebase is a huge productivity win. Next.js API routes handle your REST endpoints and webhook processing, while tRPC adds type-safe API calls between your frontend and backend without writing any API schemas.

Key backend responsibilities for a podcast platform:

  • RSS feed generation - Parse and generate podcast RSS feeds (standard XML format)
  • Audio upload processing - Accept uploads, trigger processing, store metadata
  • User management - Accounts, subscriptions, listening history
  • Analytics - Track plays, downloads, listener geography

For RSS feed generation, use a library like podcast (npm package) that handles the iTunes/Apple Podcasts spec correctly. RSS compliance is critical because every podcast app reads your feed.

Database: PostgreSQL

PostgreSQL handles everything a podcast platform needs. Your main tables will be: shows, episodes, users, subscriptions, play history, and analytics events.

Prisma as the ORM gives you migrations, type-safe queries, and a great developer experience. Host on Neon (serverless Postgres with a generous free tier) or Railway's managed Postgres.

One design decision that matters: store play progress server-side. Users expect to switch devices and resume where they left off. A simple play_history table with (user_id, episode_id, position_seconds, updated_at) handles this.

Audio Storage: Cloudflare R2

Audio files are large (30-200MB per episode) and get downloaded/streamed frequently. Traditional cloud storage (S3) gets expensive fast because you pay for bandwidth.

Cloudflare R2 charges zero egress fees. Read that again. Zero. For a podcast platform where every listener streams or downloads files, this is the difference between a $50/month storage bill and a $5,000/month one.

R2 is S3-compatible, so any library that works with S3 works with R2. Store your audio files in R2, serve them through Cloudflare's CDN, and your bandwidth costs stay at zero regardless of how many listeners you have.

Backblaze B2 paired with Cloudflare (they have a bandwidth alliance) is the alternative if you need more storage at lower per-GB costs.

Audio Processing: FFmpeg

When creators upload audio, you need to process it: normalize volume levels, convert to MP3 if they uploaded WAV/FLAC, generate waveform data for the visual player, and extract duration metadata.

FFmpeg is the industry standard for this. Run it as a background job since audio processing is CPU-intensive and shouldn't block your web server.

For the processing infrastructure, you have two options:

  1. Railway worker process - Run a Node.js worker that pulls jobs from a Redis queue and processes audio with FFmpeg. Simple, cheap, and good enough for most solo developer platforms.
  2. Cloudflare Workers + R2 event triggers - Automatically process audio when uploaded. More scalable but more complex to set up.

Start with option 1. Migrate to option 2 if processing volumes demand it.

Hosting: Vercel + Railway

Split your hosting:

  • Vercel for the Next.js frontend. Free tier is generous, and the CDN ensures your podcast pages load fast globally. Edge functions handle RSS feed serving efficiently.
  • Railway for background workers (audio processing, analytics aggregation). $5/month starter plan covers a small platform.

This split keeps costs low while giving you the right infrastructure for each concern. The frontend needs CDN and edge capabilities. The worker needs long-running process support and FFmpeg.

Nice-to-Haves

  • Stripe for subscription billing and creator payouts
  • Upstash Redis for job queues and caching (serverless, pay-per-use)
  • Resend for email notifications (new episode alerts)
  • Podping for real-time episode notifications to podcast apps
  • OpenAI Whisper for auto-generating transcripts (huge SEO boost)

Monthly Cost Breakdown

Service Cost
Vercel (Pro) $20/month
Railway (workers) $5/month
Cloudflare R2 (storage) ~$2-5/month (per 100GB stored)
Cloudflare R2 (bandwidth) $0
Neon Postgres (free tier) $0
Domain $1/month
Total ~$28-31/month

The big cost advantage here is Cloudflare R2's zero egress. A podcast platform on traditional S3 would pay hundreds per month for the same bandwidth.

Conclusion

The best stack for a solo developer building a podcast platform: Next.js for the frontend and API, PostgreSQL with Prisma for data, Cloudflare R2 for audio storage with zero bandwidth costs, FFmpeg workers on Railway for processing, and Vercel for frontend hosting.

The key insight is that a podcast platform's biggest cost driver is bandwidth, and choosing R2 eliminates that entirely. Focus your development time on the creator experience (easy uploading, good analytics, RSS that works everywhere) and the listener experience (fast player, cross-device sync, discovery). The storage and delivery infrastructure should be invisible and cheap.