Ritesh Shukla ff7c454011 Initial Setup for Toggle (#280)
* Initial Setup for Toggle

* Enhancements to Offline (#279)

* [skip actions]

* xcode and project stuff

* Enhancements to Offline (#279)

* fix workflows

* we don't need tests running on a pr, it's already going to run on a push

* complete move to yarn

* run formatter

* fix build, prep for using mediasources

* linting errors

---------

Co-authored-by: Ritesh Shukla <ritesh.shukla2@M-LD4JMWLW26.local>
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Co-authored-by: anultravioletaurora <jellify@cosmonautical.com>
Co-authored-by: Violet Caulfield <violet@cosmonautical.cloud>
2025-04-24 07:23:01 -05:00
2025-04-24 07:23:01 -05:00
2025-04-23 13:53:07 -05:00
2025-04-23 19:28:03 +00:00
2025-04-24 07:23:01 -05:00
2025-02-06 09:51:29 -06:00
2025-04-24 07:23:01 -05:00
2025-04-22 12:07:55 -05:00
2025-04-24 07:23:01 -05:00
2025-04-22 12:07:55 -05:00
2025-04-13 15:25:55 -05:00
2025-04-23 13:53:07 -05:00
2025-04-16 17:03:22 -05:00
2025-04-23 13:53:07 -05:00
2025-04-12 10:16:10 -05:00
2024-11-29 10:24:19 -06:00
2025-04-12 21:01:38 +05:30
2025-04-12 10:16:10 -05:00
2025-04-22 12:07:55 -05:00
2025-04-12 10:16:10 -05:00
2025-04-12 10:16:10 -05:00
2025-02-02 22:11:56 -06:00
2025-04-12 10:16:10 -05:00
2025-04-12 10:16:10 -05:00
2025-04-12 10:16:10 -05:00
2025-04-22 12:07:55 -05:00
2025-04-12 10:16:10 -05:00
2025-04-24 07:23:01 -05:00
2025-04-24 07:23:01 -05:00
2025-04-12 10:16:10 -05:00
2025-04-22 12:07:55 -05:00
2025-04-12 10:16:10 -05:00
2025-04-24 07:23:01 -05:00

Jellify App Icon

🪼 Jellify

publish-beta

Discord Server

TestFlight

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

👀 Lemme see!

Home

Home

Jellify Home

Library

Library

Library

Library Artists

Library Artists

Artist

Artist

Similar Artists

Similar Artists

Album

Album

Track Options

Track Options

Playlist

Playlist Search

Player

Player Queue Favorite Track

CarPlay

Home (CarPlay)

On the Server

Playback Tracking

🏗 Built with good stuff

Made with React Made with TypeScript code style: prettier

🎨 Frontend

Tamagui
Burnt
React Navigation
React Native CarPlay
React Native Draggable Flatlist
React Native Reanimated
React Native Vector Icons

🎛️ Backend

Expo SDK
Jellyfin SDK
Tanstack Query
React Native Boost
React Native File Access
React Native MMKV
React Native Track Player
React Native URL Polyfill

👩‍💻 Monitoring

GlitchTip

💜 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

🍎 iOS

Dependencies

Instructions

Setup
  • Clone this repository
  • Run yarn init:ios to initialize the project
    • This will install npm packages, install bundler and required gems, and install required CocoaPods
  • In the ios directory, run fastlane match development --readonly to fetch the development signing certificates
    • You will need access to the Jellify Signing private repository
Running
  • Run yarn start to start the dev server
  • Open the Jellify.xcodeworkspace with Xcode, not the Jellify.xcodeproject
  • Run either on a device or in the simulator
    • You will need to wait for Xcode to finish it's "Indexing" step
Building
  • To create a build, run yarn fastlane:ios:build to use fastlane to compile an .ipa

🤖 Android

Dependencies

Instructions

Setup
  • Clone this repository
  • Run yarn install to install npm packages
Running
  • Run yarn start to start the dev server
  • Open the android folder with Android Studio
    • Android Studio should automatically grab the "Run Configurations" and initialize Gradle
  • Run either on a device or in the simulator
Building
  • To create a build, run yarn fastlane:android:build to use fastlane to compile an .apk for all architectures

References

🙏 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
  • Nicolas Charpentier for his React Native URL Polyfill module and for his assistance with getting Jest working
  • The team behind Podverse for their incredible open source project, of which was used as a reference extensively during development
  • My fellow contributors who have poured so much heart and a lot of sweat into making Jellify a great experience
    • Extra thanks to John and Vali-98 for shaping and designing the user experience in many places
    • Huge thank you to Ritesh for your project automation and backend expertise (and for the memes)
  • The friends I made along the way that have been critical in fostering an amazing community around Jellify
  • My long time 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
    • Tony (iOS, Android)
    • Trevor (Android)
    • Laine (Android)
    • Jordan (iOS)
  • My best(est) friend Alyssa, for your design knowledge and for making various artwork for Jellify.
    • Youve been instrumental in shaping its user experience, my rock during development, and an overall inspiration in my life
Description
A cross-platform, free and open source music player for Jellyfin 🪼 Powered by React Native ⚛️
Readme MIT 259 MiB
Languages
TypeScript 94.9%
JavaScript 1.9%
Ruby 1%
Swift 0.8%
Shell 0.7%
Other 0.7%