https://github.com/nzoschke/jukelab
JukeLab is a DIY jukebox
https://github.com/nzoschke/jukelab
jukebox music-player spotify svelte webaudio
Last synced: about 1 year ago
JSON representation
JukeLab is a DIY jukebox
- Host: GitHub
- URL: https://github.com/nzoschke/jukelab
- Owner: nzoschke
- License: mit
- Created: 2024-10-07T21:00:24.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-21T06:15:38.000Z (over 1 year ago)
- Last Synced: 2025-03-30T21:04:21.472Z (about 1 year ago)
- Topics: jukebox, music-player, spotify, svelte, webaudio
- Language: TypeScript
- Homepage: https://jukelab.com
- Size: 9.99 MB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JukeLab
JukeLab brings an old-school jukebox to your next party. Curate a jukebox playlist full of 100 albums, set up a dedicated device, then let your friends control the music all night.

Visit [nzoschke.github.io/jukelab/](https://nzoschke.github.io/jukelab/) to try the development version in your web browser. [Visit jukelab.com](https://jukelab.com) or the [Apple App Store](https://apps.apple.com/app/id1480787158) get the real version for web or iOS (Android coming soon).
JukeLab is a web app built on [HTML Audio](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio) and [Spotify for Developers](https://developer.spotify.com/) with [SvelteKit](https://kit.svelte.dev/).
## Motivation
We recall the times when artists composed albums, fans wore out records, friends crafted mix CDs, and nerds skinned music apps.
JukeLab brings back a similar music experience that you can curate and customize.
## Developing
JukeLab is built on TypeScript and Svelte 5.
On Mac we recommend [Homebrew](https://brew.sh/) to install development tools:
```bash
brew install git node
git clone https://github.com/nzoschke/jukelab.git
cd jukelab
# fill in PUBLIC_SPOTIFY_TOKEN
cp .env.example .env
supabase start
npm install
npm run dev -- --open
```
### Spotify
To get a development Spotify access token that works for 1 hour, go to the [Getting Started with Web Playback SDK](https://developer.spotify.com/documentation/web-playback-sdk/tutorials/getting-started) doc, log into Spotify, click "Reveal your access token", then set it in `.env`:
```bash
PUBLIC_SPOTIFY_TOKEN=
```

To make a "prod" Spotify app that works indefinitely, go to [Getting started with Web API
](https://developer.spotify.com/documentation/web-api/tutorials/getting-started) doc, follow the "Create an app" section, get your client ID, then set it in `.env`:
```bash
PUBLIC_SPOTIFY_CLIENT_ID=
```
### Supabase
```bash
supabase init
supabase start
supabase status
# create new migration
supabase migration new create_channels_table
# then browse to http://127.0.0.1:54323, use table editor, then generate diff
supabase db diff --schema public > supabase/migrations/20241104092543_create_channels_table.sql
# generate types
supabase gen types --local > src/lib/types/database.ts
# reset data
supabase db reset
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.