Skip to content

Setlist UI + Spotify track search (design / future) #944

Description

@JoshuaVSherman

Idea (future, design-only for now)

A setlist management UI where the band builds/edits setlists (including cover songs to practice) and adds tracks by searching Spotify inline — no manual hunting-and-copying of share links. Also solves setlist viewing: today a band member (e.g. Kevin) gets the list by email; a UI would let them browse and tap play.

Why a Spotify API

Adding cover-song references by hand (open Spotify -> find track -> Share -> Copy link, repeated for every song) is tedious and recurring. The Spotify Web API Search endpoint lets the UI offer a search box that returns tracks and auto-fills the play link (open.spotify.com/track/<id>).

Auth

  • Client Credentials flow (app client-id + secret -> bearer token; no user login/consent) is sufficient for public catalog search.
  • ⚠️ The client secret MUST stay server-side — do NOT ship it to the JaMmusic frontend. So search should go through a web-jam-back proxy endpoint (e.g. GET /spotify/search?q=) that holds the credentials and returns track results; the JaMmusic UI calls that endpoint.
  • Spotify app already created 2026-07-12 (webjam-setlist-spotify); app credentials stored securely.

Scope to think through (NOT built yet)

  • Backend (web-jam-back): Client-Credentials token exchange + ~1h token caching; environment variables for Spotify API keys; a search-proxy endpoint; decide auth/cap gating.
  • Frontend (JaMmusic): setlist editor — reorder songs; add a song via (a) Spotify search box (auto-fill link), (b) a Dropbox link for own recordings (via the web-jam-tools#171 tool), or (c) a manual URL; plus a viewer for band members.
  • Data: reuse the existing Setlist API (web-jam-back#937/Import Kevin's practice setlist (14 songs) via Setlist API #938); each item's playLink may be Spotify or the Dropbox player-page form.
  • Access: how band members reach a setlist — shareable link/page vs. login.

Precedent / links

Context

Came out of building Kevin's practice setlist on 2026-07-12; the immediate 8 Spotify links were resolved with a one-off Client-Credentials search — this issue is about turning that into a real UI feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions