🪼 Jellify
🔗 Quick Links
ℹ️ About
jellify (verb) - to make gelatinous
see also
Jellify is a free and open source music player for Jellyfin. Built with React Native, Jellify provides a user experience that feels familar to other popular music apps and a has featureset to match
Jellify requires a connection to a Jellyfin server to work.
🤓 Background
I was after a music app for Jellyfin that showcased my music with artwork, had a user interface congruent with what the big guys do, and had the ability to algorithmically curate music (not that you have to use Jellify that way). I also wanted to create a music app that could handle my extremely large music libraries (i.e., 100K+ songs) and not get bogged down.
This app was designed with me and my dad in mind, since I wanted to give him a sleek, one stop shop for live recordings of bands he likes (read: the Grateful Dead). The UI was designed so that he'd find it instantly familiar and useful. CarPlay / Android Auto support was also a must for us, as we both use CarPlay religiously.
TL;DR Designed to be lightweight and scalable, Jellify caters to those who want a mobile Jellyfin music experience similar to what's provided by the big music streaming services.
💡 Features
✨ Current
- Available via Testflight and Android APK
- APKs are associated with each release
- Light and Dark modes
- Home screen access to previously played tracks, artists, and your playlists
- Quick access to similar artists and items for discovering music in your library
- Jellyfin playback reporting and Last.FM Plugin support
- Library of Favorited Music, not too dissimilar to how streaming services handle your 'library'
- Full playlist support, including creating, updating, and reordering
🛠 Roadmap
- Offline Playback
- CarPlay / Android Auto Support
- Support for Jellyfin Instant Mixes
- Shared, Public, and Collaborative Playlists
- Web / Desktop support
- Watch (Apple Watch / WearOS) Support
- TV (Android, Samsung) Support
👀 Lemme see!
Home
Home
Library
Library
Library Artists
Artist
Similar Artists
Album
Album Artists
Track Options
Playlist
Search
Player
CarPlay (Sneak Preview)
On the Server
🏗 Built with:
🎨 Frontend
Tamagui
React Navigation
Burnt
React Native CarPlay
React Native Vector Icons
- Specifically Material Community Icons
🎛️ Backend
Jellyfin SDK
Expo SDK
Tanstack Query
React Native Track Player
React Native MMKV
React Native File Access
React Native Boost
👩💻 Monitoring
💜 Love from Wisconsin 🧀
This is undoubtedly a passion project of mine, and I've learned a lot from working on it (and the many failed attempts before it). I hope you enjoy using it! Feature requests and bug reports are welcome :)
🏃♀️Running Locally
Universal Dependencies
- Ruby
- NodeJS
iOS Instructions
- Clone this repository
- Run
npm run initto initialize the project- This will install
npmpackages, installbundlerand required gems, and installs CocoaPods
- This will install
- In the
iosdirectory, runfastlane match development --readonlyto fetch the development signing certificates- You will need access to the Jellify Signing private repository
- To run locally, run
npm run startthen run the app on your device or in the simulator- Make sure you open the
Jellify.xcodeworkspace, not theJellify.xcodeproject
- Make sure you open the
- To create a build, run
npm run fastlane:ios:buildto use fastlane to compile an.ipafor you
Android Instructions
- Clone this repository
- Run
npm ito installnpmpackages - To run locally, run
npm run start, then run the app on your devvice or in the emulator - To create a build, run
npm run fastlane:android:buildto use fastlane to compile an.apkfor you
🙏 Special Thanks To
- The Jellyfin Team for making this possible with their software, SDKs, and unequivocal helpfulness.
- James and all other contributors of Finamp. Jellify draws inspiration and wisdom from it, and is another fantastic music app for Jellyfin.
- James’ API Blog Post proved to be exceptionally valuable during development
- The folks in the Margelo Community Discord for their assistance
- My fellow contributors who have poured so much heart and a lot of sweat into making Jellify a great experience
- Extra thanks to John Grant for shaping and designing the user experience in many places
- My dear friends that have heard me talk about Jellify for literally eons. Thank you for testing Jellify during it's infancy and for supporting me all the way back at the beginning of this project
- My best(est) friend Alyssa, for your design knowledge and for making various artwork for Jellify.
- You’ve been instrumental in shaping it’s user experience, my rock during development, and an overall inspiration in my life