Features
Everything HarborFM includes for producing, publishing, monetizing, and self-hosting your podcast. Open source, bring-your-own Stripe, and built around a real segment editor rather than upload-only hosting.
Create & produce
Build shows and episodes the way production teams work: segments first, then a final render.
Feature What you get
Podcasts & episodes Create shows with artwork, categories, explicit flags, and full metadata. Episodes support draft, scheduled, and published states, plus Unlisted (link-only when released, off the public list/RSS/sitemap).
Segment-based editor Assemble each episode from recorded clips and library assets. Reorder, trim, split, and remove silence; ffmpeg builds the final audio. Manage segment offers Download MP3 (trimmed mix), Download Segment / Import Segment, and delete.
Episode project import & export Download Project (editors and above) zips episode metadata, segment audio, multitrack recordings, and library assets for offline edit or cloning. Import Project (managers and the owner) on the Episodes page recreates a new draft with new ids. Hand-added audio.mp3 / audio.wav segments work without full metadata.
Episode archive & backup Archive Settings per show (one remote destination, same modes as Podcast Delivery). Archive uploads a project zip, verifies it, and frees local project files while keeping feed audio. Backup / Dated Backup upload without deleting local files; restore from a listed backup with confirmation, or restore an archived episode without overwriting metadata.
Segment project import & export Download Segment packs one section (source audio, tracks, metadata). Import Segment overwrites that section in place. Missing multitrack files are treated as deleted and dropped from the remade mix. Segment zips are rejected by episode Import Project.
Waveform editing Visual waveforms for trim and markers. Pan/trim modes, chapter and soundbite markers on segments and the final episode.
Chapters Add timed chapters with colors. Play from a chapter; emit Podcast 2.0 chapters.json and podcast:chapters in RSS and exports.
Soundbites Mark 15–120s clips for social and in-player highlights. Edit start, duration, and name; download clips; emit podcast:soundbite.
Library assets Upload reusable intros, outros, bumpers, and ads. Tag them and drop into any episode as segments.
Transcripts Generate with Whisper ASR or upload SRT. Multi-track recordings can transcribe each take and merge into one timeline. Stitch an episode transcript, download SRT/TXT, edit cues, and optionally show caption lanes in Advanced Editor. Optional LLM (Ollama or OpenAI) for summaries and copy.
Import from RSS Bring an existing show over: episodes, artwork, Podcast 2.0 metadata, chapters, and transcripts when linked in the feed.
Remote recording & collaboration
Feature What you get
Group calls (WebRTC) Host starts an ad-hoc call; guests join by link or 4-digit code. In-call chat, soundboard, show notes (shared with guests by default), and settings. Recordings land as episode segments.
Scheduled meetings Pick a start time from the episode editor; HarborFM reserves a join link and code. Invite by email or share link, reschedule or cancel anytime, then Start Meeting when ready. Guests see clear join statuses (waiting for host, too early, expired). Invite emails include ICS and a Google Calendar link. One meeting per episode; up to 50 active per account.
Guest episode review When an episode first becomes scheduled (or published and unlisted), HarborFM emails preview links to the meeting host, emailed invitees, and episode cast with an email. Guests can preview audio, approve, or leave feedback; the host is notified on response.
Live collaboration Episode editor WebSocket so collaborators see segment, call, and render updates in real time.
Collaborator roles Share a show as view, editor, or manager. Invite by email; optional platform invites for people not on HarborFM yet.
Publishing, RSS & Podcast 2.0
Feature What you get
RSS feeds Per-show RSS with iTunes and Podcast 2.0 tags. Serve from HarborFM or push elsewhere via export.
Podcast 2.0 metadata Funding, license, update frequency, block, chat, location, publisher, podroll, social interact, txt, value, trailers, persons, content links, and more.
Featured trailer Highlight a playable trailer on the public podcast page above Listen on / Follow.
Scheduled publishing Schedule episodes for a future publish time. Public feeds respect publish_at.
Subscriber-only episodes Mark episodes private to token holders. Excluded from the public RSS; available on private feeds.
Unlisted shows Keep a show off public discovery and sitemaps while still serving feeds and custom domains as configured.
Public feed & player
Feature What you get
Public show & episode pages Listener-facing pages with artwork, descriptions, episode lists, and playback when public feeds are enabled.
Page themes Replace the default SPA feed with a packaged Liquid theme. Built-in Fluid and Folio (Folio includes multi-page routes such as about and crew). Import custom theme zips, edit them in the Themes studio, and promote a theme server-wide as an admin. Browse extra gallery themes at /themes/.
In-browser player Playback speed, volume, resume position, chapters list with progress, soundbites, and seekable transcript cues.
Embeddable episode player Iframe embeds for your site (`/embed/...`), including custom-domain embed URLs. Optional parent resize via postMessage.
Page customizations Per-show accent color, page theme selection, optional Meta Pixel ID (respects the consent banner when GDPR consent is enabled), and toggles for author, descriptions, funding, podroll, cast, and reviews.
Listen on & social links Directory links (Apple, Spotify, Amazon Music, and more) plus social profiles and share/embed helpers.
Cast Hosts and guests on shows and episodes, with nicknames, private email, social links, and optional time zone. Update emails a profile link for self-service proposals you approve. Public feed display and Podcast 2.0 person tags.
PWA Install HarborFM on a phone or desktop home screen and connect to your self-hosted instance.
Monetization & private access
Sell access with your own Stripe account, or hand out private RSS tokens without payments.
Feature What you get
Stripe payments (BYOK) Connect your Stripe keys (test and live packs). No platform Stripe account; you keep the merchant relationship.
Subscription plans Monthly, yearly, and one-time prices. Change price by deactivating and adding a new plan; existing subscribers stay on their Stripe price.
Billing cycle Anniversary renewals or Month Start anchoring (1st of the month) for recurring Checkout.
Checkout & private RSS Listeners pay via Stripe Checkout and receive an access token plus private RSS URL (revealed once on success).
Manage subscription Customer Portal, cancel at period end, renew, regenerate or recover token, and request refunds.
Coupons Percent or fixed discounts with once / repeating / forever durations. Promotion codes at Checkout when active.
Refund requests Listeners request refunds; owners approve or deny from the show Payments UI.
Manual subscriber tokens Create tokenized private RSS without Stripe. Optional validity windows, disable, and rotate.
Support The Show Multiple Podcast 2.0 funding links on public podcast and episode pages.
Audience engagement
Feature What you get
Episode polls Multiple choice, yes/no, or short answer. Optional email, public results, start/end windows, and one-vote-per-IP.
Reviews Listener reviews on podcast and episode feeds with optional approval, subscriber-only writing, and moderation.
Subscriber messages Message channels for subscriber-only communication when configured on the show.
Recommended podcasts Podroll on the public feed. Fetch from an RSS URL to autofill GUID, title, cover, and home link.
Contact form Built-in contact page; messages stored and optionally emailed to admins.
Analytics
Feature What you get
Podcast stats Primary metrics are Downloads (unique filtered audio downloads) and Unique listeners, plus Apps, Locations, Feed health, optional retention for website plays, and date/episode filters.
Listener vs crawler Classify known podcast apps as listeners and directory bots/scrapers as crawlers for clearer charts.
GeoIP Optional GeoLite2-backed country and city views for where listens come from.
Accounts, security & team
Feature What you get
Auth Setup wizard, registration, login, password reset. Optional 2FA (TOTP or email codes).
SSO OIDC and SAML providers (e.g. Keycloak) for organizational sign-in.
API keys Programmatic access with hashed keys, optional name and expiry. Raw key shown once on create.
User limits Per-user caps for podcasts, episodes, storage, and Stripe access (`canStripe` / `defaultCanStripe`). Read-only accounts supported.
Captcha & email reCAPTCHA or hCaptcha for registration and sensitive flows. SMTP, SendGrid, or webhook email providers.
IP bans Automatic bans after repeated bad API key or subscriber token attempts; admin tools to clear bans.
Delivery & custom domains
Feature What you get
Podcast delivery exports Push feed and audio to S3, Cloudflare R2, Backblaze B2, FTP, SFTP, WebDAV, IPFS, or SMB. Skip unchanged files. Separate Archive Settings power episode Archive and Backup (project zips), not the public feed deploy.
Custom / managed domains Link your hostname or use Cloudflare-managed DNS so listeners use your brand URL for feed, OG, robots, and sitemap.
Sitemaps App and per-show sitemaps for discovery; custom domains serve host-scoped sitemaps and robots.txt.
Platform & self-hosting
Feature What you get
Open source (MIT) Full source on GitHub. Run your own instance; your data and keys stay under your control.
Docker & install script One-line install with Caddy or nginx, or run the published container image.
Terraform AWS EC2 or Vultr user-data deploys with PM2, TLS, optional WebRTC, and Cloudflare DNS.
Swagger API Documented HTTP API for automation, integrations, and API-key workflows.
Instance manager (beta) Optional multi-instance management for operators running several HarborFM deployments.
Looking for release notes? See Updates. Try the live demo at app.harborfm.com.