Musish (

Built with React and Apple's MusicKit JS while utilising the official Apple Music API. Contains some serverless functions deployed with AWS Lambda to speed up certain functionalities.


Self hosting

Building requires node and yarn.

Running the Musish web app:

1. Generating an Apple Developer Token (JWT):

Musish uses the Apple Music API and therefore you'll need a signed developer token from Apple.

Please reference Apple's official guide on generating the keys and an associated token.

2. Environment setup:

Musish requires two environment variables to start. You'll need to enter your Apple Developer token as APPLE_TOKEN, and a link to your hosted Musish backend with BACKEND_URL.


3. Install dependencies:
4. Launch Musish:

Start webpack dev server on port 8080:

yarn start


yarn build

This will create a directory called dist in the project root, these files can be served from a web server as static content.

Running the Musish backend:

We use Serverless to run our backend on AWS lambdas, however you can choose differently here.

Generating a Genius Developer Token:

If you wish to work on the Musish project's serverless backend, you will require a Genius Developer token.

Create a client access token via Genius' developer portal.

Is it safe?

Musish uses official Apple public APIs and libraries to handle authentication. The user is prompted to login directly on a new window under the domain. returns the user a temporary valid token to allow their browser to make requests to Apple Music data only.

At no point do we request, log, or gain access to information from a user of the site. The user's token is never sent to any server other than Apple's own. At no point do we ever intentionally pass any user information to any server which we control.

Our official build musi is powered by Github Pages with an AWS lambda providing both lyrics and artist information, we send no cookies or headers related to your Apple account.