Skip to main content


Explore the beam desktop/web app repository...

🛠 Status: Active Development | Stable

This project is under active development.

⚠️ ⚠️ The main branch works with api. If you want to fix a bug in the currently live version of Beam, which works with the active services, please submit them to the v0.5-maintenance branch.


This is a music player that uses Resonate's API.

This project was bootstrapped with Create React App.

View the project board where work is tracked for this repository.


Install yarn if you don't yet have it on your machine by running:

npx install yarn
git clone
cd beam
yarn install
yarn start

Runs the app in the development mode.\ Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.\ You will also see any lint errors in the console.

Running against the API

The client is set up to run against a locally running version of the API. Check instructions there for how to get it to run. You can also run the client against our stage server (please be nice to it), but for that you'll have to ask us to add a client to the server.

Logging in.

By default, most of the app will work without logging in, but if you want to log in you'll need a client_secret. Logging in will let you play complete songs, manage your playlists, etc.

First, create a local .env file:

cp .env .env.local

Then, you'll need to set REACT_APP_CLIENT_SECRET to be the client \ secret for your client app. If you're working on beam directly, \ you can message Si \ to get a client secret.

Production build

yarn build

You can then run that locally with

yarn serve


for unit tests:

yarn test

for cypress tests:

yarn cypress:open


Set up using this blog post

To try it locally do:

yarn electron:start

To build it for your system:

yarn electron:package:<linux|mac|windows>

Preparing a release

In a distinct commit that just bumps the version.

  1. Edit the package.json with the new version vx.x.x.
  2. git commit -am vx.x.x
  3. git tag vx.x.x
  4. git push && git push --tags