Podscope is a self-hosted podcast membership platform built on Laravel. Private RSS feeds, Stripe-powered subscriptions, Cloudflare Stream video, and full ownership of your content and subscriber data.
No platform lock-in. No revenue share. No monthly SaaS bill. Just your podcast, your way.
Every paying member gets a unique feed URL that works with every podcast app. Cancel a subscription and the feed stops -- automatically, no manual action required.
Create show-specific plans or an all-shows tier. Monthly recurring billing, automatic renewal, and a grace period on cancellation. All handled by Stripe.
Upload episode videos directly from the admin panel. Signed playback tokens keep videos locked to paid members -- no public URL, no workarounds.
Full namespace support: chapters, transcripts, persons, funding, soundbites, GUID, locked, medium, and more. Your feed works with every modern podcast app.
Store audio files and artwork on local disk or Backblaze B2 cloud storage. Switch between backends from settings -- no code changes, no file migrations.
Let paid episodes breathe. Set a preview period so new episodes are publicly available for a configurable number of days before the paywall kicks in.
OP3 prefix on public feeds for directory-level analytics. Internal play tracking on private feeds. A dedicated stats dashboard shows plays by episode, show, and type.
Pick a theme for the site, then give any show its own: colours, fonts, light or dark. A show's theme follows it onto its episodes and its newsletter, while the rest of the site keeps yours. No CSS, no rebuild -- choose it and the page is repainted.
Manage shows, episodes, members, plans, pages, media, and settings from a clean, modern admin built on Filament 5. No clunky legacy CMS interface.
Podscope is a standard Laravel application. If you can run a PHP site, you can run Podscope.
Clone the repo, run composer install, configure your .env file, and run migrations. Works on any server with PHP 8.4 and a queue worker.
Add your Stripe keys, connect Backblaze B2 or use local storage, set up Mailgun for notifications, and configure Cloudflare Stream if you want video.
Create your show, upload episodes, set up membership plans, and submit your RSS feed to Apple Podcasts and Spotify. Your members subscribe and get immediate access.
Podscope runs on the same stack as any modern Laravel application. No exotic dependencies.
A complete install from a fresh server. Full documentation covers CloudPanel, Nginx, and Supervisor configuration.
Podscope is free to self-host. No monthly platform fee, no revenue share, no third-party holding your subscriber list hostage.
Podscope is under active development. New features ship regularly.
"This file could not be uploaded. Try again; if you only just saved or downloaded it, give it a few seconds first. If it keeps failing, copy it to your desktop and upload that copy." The usual cause is the browser being unable to read the file for a moment, for example while it is still being scanne
The RSS Feed button on a show's page now copies the feed address instead of opening the feed. Paste it into any podcast app to subscribe. The button briefly says "Copied!" to confirm. Browsers are dropping the technology that made the feed look like a web page, so opening it would soon show listener
audio/mpeg, ...", even though the file was a perfectly good MP3. The updated upload library had started judging a file by only its first 64 KB, and in an MP3 with cover art that first stretch is all artwork, so it could not tell the file was audio. Podscope now checks the whole file, and looks past
Security update. The admin panel framework (Filament), the live-interface library (Livewire), the web client used for outgoing requests (Guzzle) and the Markdown renderer (commonmark) are updated to releases that close publicly disclosed issues, the most serious of which could let someone get past t
until now, deleting a paying member in the admin removed them from the site but left their Stripe subscription running, and because the account was gone nothing on the site could see or stop the charges. Deleting a user now cancels every live subscription they have at Stripe first (immediately, with
New-episode notification emails now go out in the show's own colours too, matching the newsletter emails since v1.04. Before, every "New episode" email used the site's brand colour whatever theme the show had chosen. The header text and the "Listen Now" button also pick a readable colour for the sho
every issue, and the "confirm your subscription" email, went out in the site's brand colour whatever the show had chosen. Both emails now use the show's theme (its own preset, or the site theme with the show's colour tint, or the site theme unchanged for a show that set none). The header text and th
SMTP is unchanged and stays the default, or pick Mailgun API and give it a sending domain, an API key and a region, with no SMTP credentials and no port 587 to be blocked. The fields for whichever transport is not selected are hidden and left stored, so switching either way and back needs no retypin