/ tech-stacks / Best Tech Stack for a Podcast Platform as a Solo Developer
tech-stacks 10 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.

Hero image for Best Tech Stack for a Podcast Platform as a Solo Developer

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.

Next.js is the default for a reason. The repo sits at about 139,600 GitHub stars and the next package pulls roughly 40.1 million npm downloads a week, with the latest release at v16.2.6 (checked on 2026-05-30). That gravity means almost every tutorial, hosting platform, and Stack Overflow answer you hit will assume Next.js, which is exactly what you want when you are the only developer.

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. Howler is mature and well adopted, sitting at about 25,300 GitHub stars with roughly 797,000 npm downloads a week. Its latest published version is v2.2.4 (checked on 2026-05-30), so do not be alarmed that the version number has not moved in a while. It does one job and does it well.

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. tRPC has roughly 40,300 GitHub stars and its @trpc/server package does about 3.5 million npm downloads a week, with the latest release at v11.17.0 (checked on 2026-05-30). The type safety pays off most when you are the only person who has to remember what every endpoint returns.

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, maintained as node-podcast at about 165 GitHub stars, latest v2.0.1, roughly 1,600 npm downloads a week as of 2026-05-30) that handles the iTunes/Apple Podcasts spec correctly. The low download count is normal for a niche feed builder rather than a red flag. RSS compliance is critical because every podcast app reads your feed, so validate your output against the Apple Podcasts requirements before you publish.

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. It is heavily used, with about 46,000 GitHub stars and roughly 11.6 million npm downloads a week, and the latest release is v7.8.0 (checked on 2026-05-30). Host on Neon (serverless Postgres) or Railway's managed Postgres.

Neon's Free plan gives each project 0.5 GB of storage, 100 compute-hours, and 5 GB of network transfer per month before compute auto-suspends until the next cycle. When you outgrow that, the Launch plan is pay-as-you-go at roughly $0.106 per compute-hour and $0.35 per GB-month of storage beyond the included amount, with 100 GB of egress included and $0.10 per GB after (checked on 2026-05-30). For a podcast platform that mostly stores rows of metadata rather than blobs, the free tier carries you a long way.

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 small storage bill and a punishing bandwidth one.

R2 standard storage is $0.015 per GB-month with free egress, plus $4.50 per million Class A (write) operations and $0.36 per million Class B (read) operations. The free tier covers 10 GB-month of storage, 1 million Class A operations, and 10 million Class B operations per month (checked on 2026-05-30). So 100 GB of episodes costs about $1.50 a month to store, and the listeners streaming those files cost you nothing in bandwidth.

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. B2 runs $6.95 per TB-month of storage (about $0.00695 per GB-month) with the first 10 GB free, and egress is free up to three times your average monthly stored data, then $0.01 per GB. Routing downloads through Cloudflare's Bandwidth Alliance keeps that egress free entirely (checked on 2026-05-30).

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. The project sits at about 60,600 GitHub stars and the latest tagged release is n8.1.1 (checked on 2026-05-30). 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. The Hobby tier is free for personal projects, and the CDN ensures your podcast pages load fast globally. Edge functions handle RSS feed serving efficiently. When you go commercial, the Pro plan is $20 per user a month and includes $20 of usage credit (checked on 2026-05-30).
  • Railway for background workers (audio processing, analytics aggregation). The Hobby plan is $5 a month with included usage, which covers a small platform; the Pro plan is $20 per seat a month for teams shipping to production (checked on 2026-05-30).

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. US standard pricing is 2.9% plus 30 cents per successful domestic card charge (checked on 2026-05-30).
  • Upstash Redis for job queues and caching (serverless, pay-per-use). The free tier covers 256 MB and 500K commands a month, then pay-as-you-go runs $0.20 per 100K commands (checked on 2026-05-30).
  • Resend for email notifications (new episode alerts). The free plan allows 3,000 emails a month capped at 100 a day, and the Pro plan is $20 a month for 50,000 emails (checked on 2026-05-30).
  • Podping for real-time episode notifications to podcast apps
  • OpenAI transcription for auto-generating transcripts (huge SEO boost). The classic Whisper route and the newer gpt-4o-transcribe model both run about $0.006 per minute, which is roughly $0.36 to transcribe a one-hour episode, while gpt-4o-mini-transcribe is about $0.003 per minute (checked on 2026-05-30).

Monthly Cost Breakdown

Service Cost
Vercel (Pro) $20/month + $20 usage credit included
Railway (Hobby workers) $5/month with included usage
Cloudflare R2 (storage) ~$1.50/month per 100GB stored ($0.015/GB-month)
Cloudflare R2 (bandwidth) $0 (free egress)
Neon Postgres (free tier) $0
Domain ~$1/month
Total ~$27-28/month

All figures checked on 2026-05-30. Vercel Pro and Railway Hobby start at $20 and $5 a month respectively before usage overages, so your real bill scales with traffic. The R2 line assumes about 100 GB of stored episodes at $0.015 per GB-month, well inside the free Class B operation allowance for early traffic.

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.

Sources

All figures verified on 2026-05-30 from the sources below. Pricing changes often, so check the current pages before you budget.

Built by Kevin

Like this? You'll like what I'm building too.

Two ways to support and get more of this work.

Desktop App

HEARTH

A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.

Read more
Digital Products

MY TOOLKITS

Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.

Browse on Whop

Need This Built?

Kevin builds products solo, from first version to live. If you want something like this made, work with him.