SpotDeck is a sleek, animated "Now Playing" dashboard inspired by the concept of a dedicated media display (like the discontinued Spotify Car Thing). It transforms any spare device—a tablet, a secondary monitor, or a spare phone—into a beautiful, interactive music display with real-time album art ambience and playback controls.
- Real-Time Playback Info: Displays the current track's title, artist, album, and progress.
- Animated Visuals: Smooth crossfade transitions, progress bar shimmer, and a dynamic, color-matched ambient background and album art glow based on the current track's album art.
- Full Playback Controls: Integrated buttons for Play/Pause, Skip Next, Skip Previous, and Volume Control (requires Spotify Premium and an active device).
- Device Status: Shows the connected device and its online/offline status.
- Fullscreen Mode: Dedicated fullscreen button and keyboard shortcut (
Forf). - Keyboard Shortcuts: Control playback with the spacebar, and toggle fullscreen with
F. - Secure PKCE Authentication: Uses modern, secure Proof Key for Code Exchange (PKCE) for Spotify authorization without exposing a client secret.
To host your SpotDeck securely using GitHub Pages from a private repository, you need to set up a Spotify Developer Application and configure the deployment.
- Go to the Spotify Developer Dashboard.
- Click Create app.
- Fill in the App Name (e.g.,
SpotDeck), Description, and check the box forWeb API. - Click Create.
- In your new app's settings, find the Client ID and keep it handy.
- Click Edit Settings.
- Under Redirect URIs, add the following URL. This URL is crucial and must exactly match the path of your GitHub Pages site:
Example:
https://<YOUR-GITHUB-USERNAME>.github.io/<YOUR-REPO-NAME>/https://johndoe.github.io/spotdeck-display/ - Click Add and then Save.
- Create a New Private Repository on GitHub (e.g.,
spotdeck-display). - Upload the
index.htmlfile (the provided file) to the root of this new repository.
-
Open the
index.htmlfile in your GitHub repository editor (or locally). -
Find the line near the top of the
<script>tag:const SPOTIFY_CLIENT_ID = "YOUR_SPOTIFY_CLIENT_ID_HERE"; -
Replace
"YOUR_SPOTIFY_CLIENT_ID_HERE"with the actual Client ID you obtained in Step 1. -
Commit the changes to your repository.
To enable GitHub Pages on a private repository, you must use a specific setup, typically deploying from the main branch.
- In your GitHub repository, go to Settings.
- In the left sidebar, click Pages.
- Under Build and deployment, select:
- Source: Deploy from a branch
- Branch: Select the
mainbranch and the/ (root)folder.
- Click Save.
- GitHub will now deploy your site. This may take a few minutes. Once deployed, the URL will be displayed on this page (it will be the same URL you entered as the Redirect URI in Step 1).
- Navigate to your deployed GitHub Pages URL (e.g.,
https://<YOUR-GITHUB-USERNAME>.github.io/<YOUR-REPO-NAME>/). - Click the Connect Spotify button.
- You will be redirected to the Spotify login page to authorize the application.
- After authorization, you will be redirected back to your SpotDeck display, and it will begin showing your current playback status.
| Key | Action | Notes |
|---|---|---|
| Space | Play/Pause | Only works when the Settings Modal is closed. |
| F / f | Toggle Fullscreen | |
| Escape | Close Settings Modal | |
| V / v | Toggle Visualizer |
- Spotify Premium: Playback control functions (Play/Pause, Skip, Volume) require a Spotify Premium subscription due to Spotify API restrictions.
- Active Device: You must have Spotify actively playing on another device (like your phone or computer) for SpotDeck to display playback data and allow controls.
MIT License © 2025 Sayan Sarkar
Special Thanks To Shitij For The Overall Help.


