← All templates

Podcast Platform

Content & Social · React + Node (Express) · 22 @molecule/* packages

Podcast hosting with audio player, episodes, RSS, and subscriptions

Open in Molecule

What is inside

  • auth
  • search
  • audio-player
  • rss-feed
  • subscriptions
  • transcription
  • episodes

Screens (14)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Discover /discover (signed in)
  • ShowDetail /shows/:id (signed in)
  • EpisodePlayer /episodes/:id (signed in)
  • Library /library (signed in)
  • Queue /queue (signed in)
  • Settings /settings (signed in)
  • Search /search (signed in)
  • Notifications /notifications (signed in)
  • Profile /profile (signed in)

Data model (11 tables)

  • chapters — id, episode_id, user_id, start_seconds, title, created_at, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • episodes — id, user_id, show_id, title, description, episode_number, season_number, audio_url, …
  • listening_progress — id, user_id, episode_id, position_sec, completed_at, updated_at, updatedAt
  • notifications — id, user_id, kind, payload, read_at, created_at, updatedAt
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • queue_items — id, user_id, episode_id, position, added_at, updatedAt
  • shows — id, user_id, author_id, title, slug, description, cover_image_url, language, …
  • subscriptions — id, user_id, show_id, created_at, updatedAt
  • saved_episodes — id, user_id, episode_id, saved_at, updatedAt
  • user_preferences — user_id, preferences, updated_at, updatedAt

API (11 handlers)

  • \_seed api/src/handlers/_seed.ts
  • chapters api/src/handlers/chapters.ts
  • episodes api/src/handlers/episodes.ts
  • feed api/src/handlers/feed.ts
  • notifications api/src/handlers/notifications.ts
  • profile api/src/handlers/profile.ts
  • queue api/src/handlers/queue.ts
  • reports api/src/handlers/reports.ts
  • saved api/src/handlers/saved.ts
  • shows api/src/handlers/shows.ts
  • subscriptions api/src/handlers/subscriptions.ts

Subscription tiers

free / pro / team — gated by: maxEpisodes, maxShows, maxSubscriptions, advancedFeatures, canExport, retentionDays

Built from 22 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY MeiliSearch API key
  • S3_BUCKET S3 bucket for audio/image uploads
  • S3_ACCESS_KEY_ID S3 access key
  • S3_SECRET_ACCESS_KEY S3 secret key
  • OPENAI_API_KEY OpenAI API key for transcription

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing