Quiet by default
Five clear rooms. Contextual controls. No dashboard of distractions between you and the next episode.
Independent Android preview
A quiet podcast player shaped around your habits—not an algorithm’s. Direct feeds, deep personalization, offline listening and identity you own.
“Keep the world close. Keep the noise low.”
01 / The idea
Five clear rooms. Contextual controls. No dashboard of distractions between you and the next episode.
RSS, local storage and Android system services. No required Play Services, Firebase, advertising or tracking SDK.
Choose any accent color, switch light or dark, pick from 15 distinct typefaces, or import your own font.
Create a local key or connect an Android signer. Your public profile can travel; listening data stays local unless you choose otherwise.
Make it yours
The interface derives its emphasis from one chosen hue. Try it here—the page and the miniature player respond together.

NOW PLAYING
Woopod Radio · Episode 12
02 / Five rooms
Swipe left or right across the screen, or use the labeled navigation. Each room keeps its own position while playback continues.
Subscriptions, episode search, archives, custom artwork and per-show settings.
Artwork, progress, resume, skip controls and speed without unrelated clutter.
A full-width listening order. Hold the handle for 1.5 seconds, then rearrange; quick movement remains scrolling.
Podcasts and episodes across directories, regions and publisher archives.
Profile, appearance, downloads, transfer tools and the settings that stay out of your way.
03 / Documentation
50 documented capabilities
Paste a secure feed URL or supported Apple Podcasts link, preview every playable episode, then subscribe. The publisher feed remains the source of truth.
Pull down from the top of Library to check every active and archived subscription with live progress. New entries merge without discarding older episodes omitted by shortened feeds. Episode numbers appear before titles, and search narrows shows or episodes locally.
Move a quiet subscription out of the everyday Library while preserving its catalog, progress, artwork, offline files, queue entries and OPML export. Restore it at any time.
List thumbnails, preview art and Player art use separate sizes and app-private caching. Import a local image to override a show’s cover; restore the publisher image later.
The cover-side menu contains artwork override, default playback speed, automatic offline retention and archive/restore. More show-level settings can be added without crowding the episode list.
Short original lines rotate while the Library overview is visible. Choose Another quote from the Library menu. No quote service or network request is involved.
The red Danger zone asks twice, recommends an OPML backup and clearly separates subscription deletion from queue, progress, appearance and identity.
Media3 keeps audio playing outside the app. Position checkpoints restore listening after restart, and the mini-player returns you to the full Player. Its long episode title shares Playlist’s title scroll speed setting; 0 stops movement in both.
Play/pause, seek, 15-second rewind and 30-second forward use large theme-colored targets. Buffering, retry and playback errors stay visible.
Adjust from 0.5× to 2.5× in Player’s top-right menu. A podcast can retain its own default and apply it as episodes change.
Equal-height cards reserve two title lines. Long titles scroll left on the second line; Settings controls speed from 0 (off) to 100. Tap a card to play; hold for Move to top/bottom, Favourite, Played and Remove. Hold an action or episode handle for 1.5 seconds to reorder.
Mark episodes manually or let completion do it. Library and Archived mark individual episodes without adding noise to podcast cards; Discover can identify previously heard shows. Durable local history survives unsubscribe and can be reversed without changing progress.
The poster adapts to available height so the episode title, timeline, transport buttons and action rail remain together on one non-scrolling screen.
Save a private thought at the current playback time, reopen notes in chronological order and tap one to seek back. Notes remain in an independent local database.
In Player, tap Scissors. Drag the timeline’s start/end handles, select Start or End, then slide the ruler for fine adjustment. Enter exact times reveals optional seconds or mm:ss input with millisecond precision; Use current position applies to the selected endpoint. Choose any valid portion of the episode—there is no clip-length cap. Woopod reads the actual episode length first; the timeline, fine ruler and typed times stop at that end. Exact times display as mm:ss or hh:mm:ss, and length reads in hours/minutes/seconds. Listen with restart/play-pause or check the final five seconds. A thin green playhead follows the audio on the slider in both the editor and preview, remaining at its position when paused. Create clip opens an editable local preview; Share and Copy share link are available there once sharing details are ready. Comments allow up to 280 Unicode characters and 1,024 UTF-8 bytes. The link includes the feed address and public comment, so use public podcasts only. Older episodes automatically recover their feed from saved details or podcast directories and cache it for next time. If recovery fails, the visible header offers feed entry while local preview still works. Browser playback depends on the companion deployment; creating a link does not post a message or upload audio.
Podcasting 2.0 value recipients produce a conditional Bitcoin action. Generic funding links do not masquerade as Bitcoin support. The comment icon opens publisher discussions: read public Mastodon-compatible threads inside Woopod or open the publisher’s service to reply. Share opens Android’s share sheet for the full publisher audio link. Scissors creates unlimited-length timed clips with native listening and an editable preview before sharing. Browser clip playback still depends on the companion deployment; public Woopod chat remains planned.
Tap a title for show notes. Timestamped notes and inline feed chapters become individual rows; tapping a time loads the episode and seeks to that point with feedback.
Inline chapters, descriptions and timestamped private notes work now. External chapter files, embedded media chapters and transcripts remain to be added.
A timer and recurring listening schedule are part of the product scope, but are not in the current preview.
You → Audio can shorten quiet gaps while preserving your chosen speech speed. It works with streamed and downloaded episodes; all audio effects default off.
An optional short chime marks automatic advancement to a different queued episode, with a brief pause before the next episode resumes. Manual selection and replay do not chime.
Raise quiet recordings by 0–12 dB. Peak limiting protects against digital clipping; strong boost can reduce dynamics. Automatic loudness leveling remains future work.
Combine all channels so either ear receives the full conversation. Mono takes precedence over surround and disables its slider while enabled.
Choose from 20 saved curves: Flat, Speech, Warm Voice, Vocal Clarity, Rock, Pop, Jazz, Classical, Acoustic, Electronic, Dance, Hip-Hop, R&B, Metal, Bass Boost, Treble Boost, Bass Cut, Treble Cut, Loudness and Late Night. Adjusting a band marks the curve Custom. The five sliders span −12 to +12 dB; presets keep your other audio controls unchanged.
A separate 0–12 dB bass control works with the equalizer on or off. Headroom compensation keeps tonal changes from blindly increasing already loud peaks.
Widen stereo sound from 0–100%, best heard through headphones. Centred voices stay centred; mono recordings cannot gain missing stereo detail. Reset audio returns all these controls to their original defaults.
One field accepts podcast names, episode titles, people, topics or a feed link. Whole-word matching prevents short searches such as “AI” from matching unrelated letter sequences.
Results combine gPodder, fyyd and Apple across multiple storefronts. Sources finish independently, so one failure does not erase useful matches from the others.
Continue into more regions, additional directory pages and up to five publisher RSS archives per pass. Existing results remain while coverage grows.
Saved subscriptions stay out of Discover unless Include subscriptions is enabled from the three-dot menu. Search your existing collection in Library.
Categories, suggestions and verified author/person discovery are planned. Current discovery is keyword and feed-link based.
Save audio for local playback. Ready files transparently replace the network source; partial, failed and binned files never masquerade as playable downloads.
Set 1–100 newest episodes per podcast, or zero to disable. Replacements must finish before older files move to the Bin, and the current Player item is protected.
Wi-Fi-only is the default. Cellular can be allowed deliberately; roaming downloads remain disabled.
Choose manual, 1/3/6/12/24-hour intervals, or a daily local time. Android may delay background work for battery or network conditions.
Playlist’s three-dot menu opens locally stored finished episodes. Restore returns audio and its card to Playlist. A shared slider in Settings and Bin keeps files for 15 min, 30 min, 1 h, 6 h, 12 h, 1 d, 3 d or 7 d.
Choose hue, saturation, brightness or an exact hex value. Woopod derives readable surfaces and selection states for light and dark appearances.
Fifteen genuinely different bundled families work offline. Import a TTF or OTF up to 10 MB, preview it in the interface and remove it later.
Hide or show podcast artwork in search and Playlist when you want an even quieter interface.
Hold any bottom destination for 1.5 seconds and drag left or right. Labels, taps, internal jumps and horizontal swipes share your saved order.
Controls carry accessibility labels, key actions use 48 dp targets, drag reordering has TalkBack alternatives, and long screens reveal a translucent back-to-top action.
Choose a display name, receive a random DiceBear Stack avatar, and generate a fresh secp256k1 key locally. The default profile description is “#woopod clan.”
The nsec stays hidden and red until requested. A secure dialog explains that there is no password reset, supports user-triggered copying and recommends a password manager.
Amber/NIP-55 connection keeps the signing key in the signer app. Woopod can display the public identity without silently requesting event-signing permission.
Verified kind-0 profiles are read from Woopod and purplepag.es. Local accounts can publish independently and retain per-relay acknowledgements.
Tap the chat icon in Player or Episode comments in an episode’s details. Feed-provided discussion links choose the publisher’s official conversation. Woopod reads public Mastodon-compatible posts and replies with loading, retry, refresh and back-to-top controls. Content warnings hide the post text until revealed. Replies open on the original service using your account there. Other services use external links; feeds without discussion metadata explain that no thread is available. Publisher-disabled comments are respected. This is separate from the planned public, unencrypted Woopod chat.
Remote QR sign-in, private-key import, native comment posting, reviews and per-show completion posts remain planned. Listening is not published automatically.
Import nested subscription files or export a standard OPML 2.0 document through Android’s picker. Duplicates are skipped; large imports checkpoint progress and can resume.
OPML moves subscriptions only. Progress, queue, settings, notes and local achievements need a separate encrypted full-backup format and independent provider strategy.
Podcast and episode records live in incremental SQLite storage rather than one giant preference value. Migration is transactional and metadata edits do not rewrite episode catalogs.
The app includes no Google identity, Firebase, ad or tracking SDK. AndroidX, Media3, system DownloadManager and WorkManager do not require a Google account to run.
Android creates clip links now. Their bounded browser player, listening statistics, badges, widgets, radio, alarms and advanced social discovery remain future work.
No documented capability matches that search.
04 / Icon language
Every active interface icon is named below. Color communicates state: the chosen theme color means active or available; soft gray means not yet selected.
Start an episode or select it from Playlist.
Pause the current audio without losing position.
Rewind the active episode by fifteen seconds.
Advance the active episode by thirty seconds.
Gray at 50% when absent; theme-colored when the episode is queued. Tap again to remove.
Small gray handles at 50% opacity keep Playlist quiet. Hold for 1.5 seconds to reorder episodes or action rows. The action menu is one panel dismissed by tapping outside.
In the Playlist card’s long-press menu, move this episode to the first queue position.
In the Playlist card’s long-press menu, move this episode to the final queue position.
Long-press a Playlist card and choose Remove from playlist to remove that queue entry.
A compact status indicator for a saved favourite. Toggle it from the Playlist card’s long-press menu.
Save an episode for offline listening.
Stop a queued or active transfer.
The audio is stored locally. Tap to move the file to the Bin.
Return an episode from the Bin to offline playback.
Theme-colored means played; soft gray means unplayed. Tap to reverse the state.
Open finished local audio, restore it to Playlist or confirm permanent deletion.
Save a private thought at the current episode time or reopen an earlier note.
Open Android’s share sheet for the current episode’s full publisher audio link, title and podcast name.
Appears only when a feed supplies Podcasting 2.0 funding or value destinations.
Choose start/end without a length cap, listen to the boundaries, and create an editable local preview before sharing. Browser playback depends on the companion deployment.
Read the publisher’s public discussion or open its service to reply. Available in Player and Episode details. A separate public, unencrypted Woopod chat is planned; messages will be signed by their authors.
Open contextual Library, Playlist, Discover or podcast settings.
Leave a podcast’s episode view for its parent collection.
Appears after scrolling; smoothly returns a long view to its beginning.
Reveal or collapse a populated group in You.
Hide a subscription from everyday Library without deleting it.
Move an archived subscription back into Library.

05 / Independence
Woopod is designed to work without an account gate, ad network or required Google runtime. Public profile actions are separate from local listening. Nothing is published merely because you pressed play.
06 / What comes next
Planned work is shown as planned. Priorities can change as the app is tested in real listening.
Accessibility, large libraries, playback reliability, Playlist gestures and full device verification.
Native comment posting, per-show completion-post controls, remote signing and transparent relay status.
Transcripts, sleep controls, loudness leveling, per-podcast audio overrides, statistics, badges and organization.
Android can select and share clip times and a public comment. The companion website resolver and bounded player are the next integration.