Skip to content

mv5903/partyfy

Repository files navigation

Partyfy

Add songs to your friends' Spotify queues remotely, using this web app built around the Spotify API.

Installation

Notice how you'll never need to install an update since the iOS app is just a wrapper for the PWA thanks to PWA Builder. This means that you'll always have the latest version of Partyfy, no matter what device you're on.

Features

  • Queue Management: Add songs to their queue just by adding your friends and asking them to turn on unattended queues. This allows you to add songs to your friend's queue without them having to do anything. This is perfect for parties, road trips, or any other situation where you want to share the music selection with others.
  • Queue from Anywhere: Add songs to the queue from any device, whether it's a phone, tablet, or computer. Add from Spotify search, your playlists, or your liked songs.
  • Queue Visibility: See the queue in real-time, with the ability to see the next 20 upcoming songs.
  • QR Code: Generate a QR code that your friends can scan to join the queue, or copy the link. This will be useful for parties where you don't want to add everyone as a friend or need people to sign up.

Upcoming Features

I'm a solo developer finishing college and I have a part-time job, so I can't work on these as fast as I want to. Here are some of the features I have planned for the future (I will update this list as I complete them):

  • Back Button: Use your device's back button to go back to the previous page. Currently, you have to use the back button in the app, and using your device's back button will cause unexpected behavior.
  • Previously Queued Songs: See the songs that have already been played in the queue.

Known Free Account Limitations

When linking a Spotify free account, functionality is limited (I have no control over this):

  • Friends of a free account user cannot add songs to the queue.
  • Friends of a free account user cannot see the queue.

Limitations

Unfortunately, some of the most requested features are currently impossible due to the current version of Spotify's API. They currently do not provide endpoints for the following actions:

  1. Deleting an item from the queue
  2. Rearranging items in the queue
  3. Keeping the queue just the queue, not a combination of the queue (which is always at the top, luckily) and items that will play next based on the playlist content is being streamed from.

Stack

For those who are curious, here is a general overview of the stack used to create this application:

  • Frontend: React with Typescript
  • Backend: Node.js with Express using the Next.js framework
  • Database: Vercel's PostgreSQL database with Prisma ORM for Typescript
  • Authentication: Auth0
  • Hosting: Vercel

License

This project is licensed under the GNU Affero General Public License v3.0. Key points of the license include:

  • You are free to use, modify, and distribute this software.
  • If you distribute copies or modified versions of this software, you must provide the source code under the same license.
  • If you use this software to provide a service over a network, you must also make the source code available to the users of that service.
  • This software comes with no warranty; use it at your own risk.

See the LICENSE file for details.