The Building
I actually like your “room” idea because it solves a problem that many media apps struggle with: not all audio is consumed the same way.
Listening to a song is different from listening to an audiobook, which is different from listening to a podcast, which is different from live radio. Trying to force all of these into one UI usually leads to compromises.
Instead, think of your app as one building with many specialized rooms.
The Building
The app itself is the building.
It provides things that are common to every experience:
- User accounts
- Downloads
- Search
- Plugin system
- Playback engine
- Queue
- Audio controls
- Settings
- Notifications
Audio Platform
┌──────────────────────────────────────────────┐
│ │
│ Playback Engine │
│ Search │
│ Plugin Manager │
│ Downloads │
│ Library │
│ Queue │
│ Settings │
│ │
└──────────────────────────────────────────────┘
These are always available.
Rooms
Each room is optimized for one type of audio.
Audio Platform
┌──────────────┬──────────────┬──────────────┐
│ │ │
Music Room Podcast Room Audiobook Room
│ │ │
│ │ │
Different UI Different UI Different UI
Each room is almost like its own mini app.
Music Room
Music is about fast discovery and continuous listening.
The emphasis is
- Albums
- Artists
- Genres
- Playlists
- Recommendations
- Queue
Albums
Artists
Playlists
Liked Songs
Genres
New Releases
Large album artwork.
Minimal metadata.
Fast interactions.
Podcast Room
Podcasts are episodic.
Users think differently.
Instead of artists they think
Shows
Episodes
Subscriptions
Downloads
Continue Listening
Each episode needs
- description
- transcript
- chapters
- show notes
Those things don’t belong in the music UI.
Audiobook Room
Books require even more information.
Books
Authors
Chapters
Bookmarks
Reading Progress
Notes
Progress is extremely important.
Chapter 18
62% Complete
4 hours remaining
Album art isn’t the main focus anymore.
Progress becomes the primary element.
Radio Room
Live radio has different needs.
Stations
Trending
Genres
Nearby
Live
Recently Played
No seeking.
No chapters.
No progress.
Meditation Room
Very different.
Sleep
Focus
Calm
Nature
Breathing
Timers
The UI is much calmer.
Muted colors.
Minimal controls.
Educational Room
Imagine lectures.
Courses
Lessons
Bookmarks
Notes
Speed
Transcript
Downloads
You might even show
Slides
Transcript
Quiz
Bookmarks
The architecture
I would separate the application into three layers.
Core Platform
│
┌─────────────────┴────────────────┐
│ │
Playback Services Plugin System
│ │
└─────────────────┬────────────────┘
│
Room Framework
│
┌────────┬────────┬─────────┐
│ │ │ │
Music Podcast Books Radio
Notice that playback lives outside the rooms.
The rooms simply ask:
Play this.
The playback engine does the work.
Navigation
Instead of tabs,
I’d think of rooms like entering spaces.
□□□□□□□□□□□□□□□□□□□□
🏠 Home
🎵 Music
🎙 Podcasts
📚 Audiobooks
📻 Radio
😴 Sleep
⚙ Settings
Switching rooms changes almost everything.
Home
Home isn’t a room.
It’s the lobby.
Continue Listening
Recently Played
Downloads
Pinned Rooms
Recommendations
Recent Searches
From here users enter a room.
Plugins
Here’s where it becomes powerful.
Plugins don’t necessarily provide music.
They provide content.
Example
Spotify Plugin
supports
Music
Pocket Casts Plugin
supports
Podcast
LibriVox Plugin
supports
Audiobook
BBC Plugin
supports
Radio
When the user enters Music,
the app asks only plugins supporting
Music
When entering Podcasts,
Podcast
So the room automatically fills with compatible content.
A room defines its own design
Instead of only data,
a room owns
Navigation
Search filters
Cards
Lists
Player
Metadata
Context menus
Recommendations
Each room can feel unique.
Search
One search bar.
Different behavior.
Music room
Search
Artists
Albums
Songs
Genres
Podcast room
Search
Shows
Episodes
Hosts
Audiobooks
Search
Books
Authors
Narrators
Same search box.
Different search experience.
Player
The mini-player stays global.
────────────────────
▶
Believer
Imagine Dragons
────────────────────
Opening it expands differently depending on the current room.
Music
Artwork
Lyrics
Queue
Podcast
Artwork
Transcript
Chapters
Sleep Timer
Book
Chapter
Bookmark
Notes
Remaining Time
Same playback engine.
Different presentation.
I would introduce one more concept: “Experience Packs”
A room shouldn’t just be a page—it should define an entire experience.
Each room could register:
Music Experience
Home Screen
Search Screen
Details Screen
Player
Context Menu
Filters
Sorting
Recommendations
Another experience might register:
Audiobook Experience
Library
Progress
Bookmarks
Player
Chapters
Collections
The core app asks, “Which experience should handle this content type?” rather than hard-coding screens for music, podcasts, or books.
The mental model
I would think of the app as a city rather than a single application:
Audio Platform (City)
│
┌────────────────────┴────────────────────┐
│ │
Infrastructure Experience Framework
(roads, power, transit) │
│ │
Playback • Downloads • Search • Queue • Plugins
│
┌──────────┬──────────┬──────────┬──────────┐
│ │ │ │
Music Podcasts Audiobooks Radio
Room Room Room Room
│ │ │ │
Own navigation Own layouts Own player Own discovery
│ │ │ │
Uses the same core services underneath
This keeps the platform consistent while allowing each content type to have an interface designed around how people actually consume that kind of audio. As you add new content types in the future—such as language learning, lectures, or guided fitness—you create a new room that plugs into the same foundation instead of forcing every experience into a one-size-fits-all UI.