A sleek, feature-rich music streaming application built with Flutter. Stream music from multiple sources, create playlists, and enjoy seamless playback across mobile and desktop platforms.
Get a glimpse of VoidLoop's sleek interface:
This project is created for educational purposes only. Commercial use, redistribution for profit, or any commercial deployment of this application is strictly prohibited. This project is designed to demonstrate music streaming architecture, Flutter development practices, and integration with various music APIs.
VoidLoop is developed by Rishab (@voidbornfr)
A passion project showcasing modern Flutter development with real-world features like music streaming, playlist management, and cross-platform support.
- Stream music from Deezer, JioSaavn, and ReccoBeats
- High-quality audio playback with just_audio
- Background playback support
- Queue management and shuffle/repeat modes
- Mobile: Android with full background audio support
- Desktop: Windows with Discord Rich Presence integration
- Responsive UI that adapts to different screen sizes
- Create and manage custom playlists
- Save liked songs
- Browse curated playlists from music services
- Persistent storage with Hive
- Search across multiple music sources
- Browse by artist, album, and genre
- Personalized recommendations
- Section-based discovery
- Sleek dark theme UI
- Mini player for quick access
- Full-screen player with album art
- Song options and sharing capabilities
- Smooth animations and transitions
- Supabase: Backend for user data and authentication
- Discord RPC: Show what you're listening to on Discord (Windows)
- Local Storage: Offline playlist and preference storage
- Battery optimization for mobile
- Audio session management
- Permission handling
- File picker for local content
- Share functionality
- Flutter - Cross-platform UI framework
- Provider - State management
- Material Design - UI components
- Supabase - Backend-as-a-Service
- Deezer API - Music streaming
- JioSaavn API - Music streaming
- ReccoBeats API - Music recommendations
- just_audio - Audio playback
- audio_service - Background audio
- audioplayers - Desktop audio support
- Hive - Local database
- Shared Preferences - User preferences
- win32 - Windows API access
- Discord RPC - Rich presence
- Flutter SDK: >= 3.0.0
- Dart SDK: >= 3.0.0
- Android SDK: API 21+
- Windows SDK: For desktop development
- Android 5.0+ (API 21+)
- Windows 10+
- Install Flutter
- Clone the repository:
git clone https://github.com/voidbornfr/voidloop.git cd voidloop
-
Install dependencies:
flutter pub get
-
Configure Supabase:
- Update
lib/config/supabase_config.dartwith your Supabase credentials - Set up your Supabase database schema using
supabase_schema.sql
- Update
-
Generate code (for Hive models):
flutter pub run build_runner build
Mobile (Android):
flutter runDesktop (Windows):
flutter run -d windowsRelease Build:
flutter build apk --release
flutter build windows --releasevoidloop/
├── lib/
│ ├── config/ # Configuration files (Supabase, etc.)
│ ├── models/ # Data models (Song, Playlist, User, etc.)
│ ├── screens/ # UI screens
│ ├── services/ # Business logic & API integration
│ ├── widgets/ # Reusable UI components
│ └── main.dart # App entry point
├── android/ # Android-specific code
├── windows/ # Windows-specific code
├── ios/ # iOS-specific code
├── public/ # Assets (logos, icons)
├── test/ # Unit and widget tests
├── pubspec.yaml # Dependencies
└── supabase_schema.sql # Database schema
Manages audio playback, queue, and player state across the app.
Handles backend communication, user authentication, and data synchronization.
Manages playlist creation, modification, and persistence.
API integration for music streaming and search.
Windows-only service for Discord Rich Presence integration.
Handles local data persistence using Hive.
- SongCard - Displays individual songs
- PlaylistCard - Shows playlist information
- SongListTile - List item for songs
- MiniPlayer - Compact player widget
- SongOptionsSheet - Context menu for song actions
- SplashScreen - App initialization
- HomeScreen - Main feed and discovery
- SearchScreen - Music search
- PlayerScreen - Full-screen player
- PlaylistDetailScreen - Playlist content
- LibraryScreen - User's saved content
- LikedSongsScreen - Favorite tracks
- QueueScreen - Current playback queue
- ArtistDetailScreen - Artist information
- AlbumDetailScreen - Album content
- User data is stored securely in Supabase
- Local data is encrypted using Hive
- No personal information is shared with third parties
- API keys should be stored in environment variables
This project is provided for educational purposes only.
Commercial use is strictly prohibited.
See LICENSE.txt for details.
This is an educational project. While contributions are appreciated for learning purposes, please note:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Note: Contributions should maintain the educational nature of the project and not introduce commercial features.
- Discord RPC is Windows-only
- Some music sources may have regional restrictions
- Background playback on iOS requires additional configuration
- Offline mode is limited to cached content
- Offline download support
- Lyrics display
- Equalizer controls
- Podcast support
- Social features (sharing, following)
- Advanced analytics
- iOS support improvements
For questions, issues, or suggestions:
- GitHub: @voidbornfr
- Issues: GitHub Issues
- Flutter team for the amazing framework
- Supabase for backend services
- Deezer, JioSaavn, and ReccoBeats for music APIs
- All contributors and testers
Made with ❤️ by Rishab (voidborn)
VoidLoop - Your music, your way.




