Music Man

Identity · crates · Archive · V1.5

Kyle — from Corbin & the bots.

We prototyped your idea so you could click it

You sketched a layer above the services: identity, rights, crates, play only where it's actually allowed. Corbin & his AI coding agent turned that into this working desk in a short stretch — not a product plan, a demo you can poke. Look around, break things, steal the parts that feel alive.

Why you're seeing this: proof we can go from napkin to something clickable fast. The job after that is the next idea — and the one after that — until something is worth really digging into. Live at musicman.23degrees.dev. This build is the exhibit, not a commitment to keep shipping Music Man.

What we actually built

Short list of what shipped in this prototype — no vapor.

  • Working in-app streaming (scoped) — real HTML5 playback for Internet Archive items with a clear open / public-domain license (PLAY badge). Not Spotify, not “every song on earth.” Try the PLAY sample or the button on Search.
  • Live search against real online libraries — Search hits MusicBrainz (identity: artists / recordings) and the Internet Archive (mixtapes / audio) over the public web APIs. Results are live, not a fake canned list.
  • Rights-honest UI — PLAY / LINK / INDEX / BLOCKED badges so the app doesn't pretend it can stream what it can't.
  • Local crates in the browser — pins, playlists, and listening history stored on this device (export in Settings). No cloud login required.
  • Commercial catalogs as link-outs — open in Spotify / Apple / etc. from a recording page. Identity stays here; their apps handle licensed playback.
  • Live demo on a private test domain — this Next.js app is hosted at musicman.23degrees.dev so you can open it from anywhere.
  • Fast product research + build loop — we read the platform rules (Spotify Developer Terms / Policy), prototyped what was allowed, cut what wasn't, and left you something clickable instead of a slide deck.

What's real in here (try it)

  • MusicBrainz search — artists / recordings as the spine. Start at Search.
  • Internet Archive — mixtapes and clear-license audio with in-app play when the badge says PLAY. Archives. We stream from archive.org; we don't rehost.
  • Local crates — pins, playlists, history in this browser. Yours, not a cloud account.

Fast path: Open the PLAY sample and hit Play here.

Why we're not pushing a public Spotify player

Your instinct about the layer above services is solid. The part that dies on contact with platform rules is “one in-app player that blends commercial streams with other sources.”

Spotify's Developer Terms / Policy (v10, effective 15 May 2025) are the concrete wall. The pieces that matter here:

  • Policy III.5 — don't build a product integrated with streams or content from another service. Blending Spotify playback with Archive (or anyone else) in one player is exactly that.
  • Policy IV — Streaming apps can't sell access, run ads on the player, or otherwise monetize that way. Non-streaming tools get more room; once you stream, you're boxed in.
  • Policy III.11 — don't mimic or replace Spotify's core experience without written permission.
  • Quotas — past a small allowlist, “extended” access is aimed at registered orgs with huge scale (on the order of ~250k MAUs) plus review. Not a weekend Indie ship.
  • Premium-only for full-track Web Playback — Free users don't get the in-app stream.

A private Premium demo for a couple of emails is one thing. A public multi-source player on their Platform is a bad place to sink months. We stripped Spotify login / Web Playback so this demo matches that reality.

Takeaway for the next prototype: keep the brain / rights / crate thinking if it still excites you — or bring something else entirely. We're not locked to this repo. We care about finding a problem worth the dig.

Hard limits (so nobody wastes a weekend)

  • You don't get every commercial catalog in one custom player without each platform's APIs and licenses.
  • No scraping mixtape sites; no rehosting Archive files.
  • “Universal playback aggregator” is an industry/contract problem, not a missing React component.
Archive PLAY items stream here — MusicBrainz identity + local crates stay in the browser. Commercial catalogs open as link-outs, never in-app streams.