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 with season and episode numbers.
Segment-based editor Assemble each episode from recorded clips and library assets. Reorder, trim, split, and remove silence; ffmpeg builds the final audio.
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. Edit cues with trim awareness; 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 a call; guests join by link or 4-digit code. In-call chat, soundboard, and settings. Recordings land as episode segments.
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 Harbor yet.
Publishing, RSS & Podcast 2.0
Feature What you get
RSS feeds Per-show RSS with iTunes and Podcast 2.0 tags. Serve from Harbor 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.
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 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 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 RSS hits, enclosure requests, and listens over time with per-episode breakdowns.
Listener vs crawler Classify known podcast apps as listeners and directory bots 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.
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.