Sleek and modern music streaming app, powered by Jellyfin, built with Expo and React Native.
Sonora is a project aimed at delivering a high-quality selfhosted music streaming experience. The goal is to take inspiration from Apple Music’s design—keeping the good parts and rethinking the bad ones—to create a seamless and beautiful user interface. Built with React Native and Expo, Sonora will allow users to stream their personal music library from a Jellyfin server.
As this is an early-stage project, the codebase is subject to frequent changes and improvements.
- Stream music from your Jellyfin server
- Elegant and modern UI inspired by Apple Music
- Cross-platform support with React Native & Expo
- Smart search and dynamic filtering
- Light & dark mode support
- Offline playback (planned)
- Gapless playback (planned)
To set up the development environment, ensure you have the following installed:
- Bun or Node.js with npm/yarn
- A Jellyfin server set up and running
- Xcode (for iOS development) or the appropriate Android toolchain (Android Studio, Java JDK, etc.)
git clone https://github.com/gergogyulai/sonora.git
cd sonora
bun install
# or
npm install
# or
yarn install
Since Sonora uses native modules, Expo Go will not work for development. Instead, developers need to use a custom development client:
- Build the development client
expo prebuild expo run:ios # for iOS (requires macOS and Xcode) expo run:android # for Android
- Start the development server
expo start
- Run on a simulator/emulator or a physical device
- For iOS, open the project in Xcode and run it on a simulator.
- For Android, use an emulator from Android Studio or connect a physical device via USB.
Before using Sonora, ensure you have a Jellyfin server set up. You can configure your server details inside the app settings.
Contributions are welcome! Feel free to open issues and pull requests.
MIT License. See LICENSE
for details.