How mr-baraiya/vmusic works
VMusic is an indie-music discovery and streaming web app. Users browse or search music, play tracks in a persistent player, and—when signed in—manage favorites, playlists, and profiles. A parallel VibeTube experience searches YouTube and exposes video and playlist features. The graph reflects documented product capabilities and sampled wiring; several page and API implementations were not sampled, so uncertain connections are left out.
Main entry points: App.jsx Application routes · AuthContext.jsx Auth context · jamendo.js Jamendo client · Search.jsx Music search
Components 28
Music discovery
- Application routes
src/App.jsx - Explore and catalog
src/pages/Explore.jsx - Music search
src/pages/Search.jsx - Artist and album pages
src/pages/Artists.jsx - Jamendo client
src/api/jamendo.js - Jamendo music API
- Spotify clients
src/api/spotify.js - Spotify API
Identity and library
- Auth context
src/contexts/AuthContext.jsx - Firebase config
src/config/firebase.js - Firebase Auth
- Firestore
- User API client
src/api/users.js - User endpoint
api/users.js - MongoDB
- Favorites and playlists
src/pages/Favorites.jsx - Favorites endpoint
api/favorites.js - Playlists endpoint
api/playlists.js
Playback
- Player context
src/contexts/PlayerContext.jsx - Persistent player
src/components/player/FloatingPlayer.jsx
VibeTube
- VibeTube experience
src/pages/VibeTube.jsx - Video search and player
src/components/vibetube/SearchResults.jsx - YouTube client
src/api/youtube.js - YouTube API
- Search history
src/components/vibetube/SearchHistory.jsx - Search history endpoint
api/search-history.js - YouTube playlists UI
src/components/vibetube/YouTubePlaylists.jsx
Other components
- Listener
Connections 28
- Listener → Application routes: navigates
- Application routes → Explore and catalog: routes to
- Application routes → Music search: routes to
- Application routes → Artist and album pages: routes to
- Application routes → Favorites and playlists: routes to
- Application routes → VibeTube experience: routes to
- Music search → Jamendo client: searches
- Jamendo client → Jamendo music API: requests catalog
- Music search → Player context: plays tracks
- Explore and catalog → Jamendo client: loads music
- Artist and album pages → Jamendo client: loads catalog
- Spotify clients → Spotify API: requests recommendations
- Auth context → Firebase config: uses configuration
- Auth context → Firebase Auth: authenticates
- Auth context → Firestore: reads and writes users
- Auth context → User API client: syncs user
- User API client → User endpoint: calls
- User endpoint → MongoDB: persists user
- Favorites and playlists → Favorites endpoint: manages favorites
- Favorites and playlists → Playlists endpoint: manages playlists
- Persistent player → Player context: controls playback
- Player context → Listener: streams audio
- VibeTube experience → Video search and player: presents search
- Video search and player → YouTube client: searches videos
- YouTube client → YouTube API: requests videos
- Search history → Search history endpoint: loads and clears
- Search history endpoint → MongoDB: stores searches
- VibeTube experience → YouTube playlists UI: offers playlists