Project Mixtape
mixtape — make someone a tape
Make someone a mixtape. Like it’s 1996 and you mean it.
Mixtape Is Live: Make One for Someone You Love
There’s something that got lost when streaming took over. Not the music — the music is all there. What got lost was the gesture. The act of sitting down, choosing songs in a specific order, for a specific person, and handing it to them. A mixtape wasn’t a playlist. It was

Here's a changelog based on the full commit history:
Uristocrat Mixtape — Changelog
Spotify Integration
- Added Spotify as an alternative search source alongside Apple Music
- Spotify tracks play 30-second previews via HTML audio (no account required)
- Source toggle in the search bar — switch between Apple Music and Spotify mid-search
- "No preview" badge shown for Spotify tracks that lack a preview URL
- Mixed tapes (Apple + Spotify tracks) supported; playback routes to the right player automatically
- Homepage and create page copy updated to reflect both sources
Embedding
- Mixtapes can now be embedded as iframes on any website
- "Embed this tape" CTA visible to all viewers — reveals a copyable
<iframe>snippet ?embed=1mode hides bottom actions for a clean embedded experience- Amplitude tracks
embedandreferrerontape_openedso you can see where embeds are playing
Sharing & Social
- Share button on both arrival and player screens (native share sheet or clipboard fallback)
- Social sharing with UTM params; Instagram Story image generation
Tape Creation
- Creator's name (
fromName) field — shows on the arrival screen ("Edwin made you a tape.") - Public/private visibility toggle
- Remix feature — clone any public tape's tracklist as a starting point for your own
- Playlist editing after a tape is created (
/t/:id/edit) - Side A / Side B separation maintained throughout — tracklist restarts numbering per side
Player
- Side A / Side B clearly labeled in the tracklist with dividers and per-side track numbers
- Dynamic page title: "Mixtape — [tape name]"
- Cassette graphic flips label to "SIDE B" when playing side B tracks
- "Make your own mixtape", "Remix this tape", "Edit this tape" CTAs on both arrival and player screens
Homepage & Build Page
- 5 most recent public tapes shown on the homepage
- CassetteTape SVG replaces the video cassette emoji
/buildpage with full app prompt for remixing- Markdown mode toggle on
/build— strips to plain text for easy copying into AI agents - Vibe Shift CTA on
/buildpage - Footer with "remix this app" and "Uristocrat Studios" links
Analytics
- Amplitude tracking across all key events:
tape_opened,tape_inserted,playback_started,track_added,tape_shared,embed_code_copied, and more - Embed and referrer data captured on open
Infrastructure
- Deployed on Cloudflare Workers via
@opennextjs/cloudflare - Apple Music JWT signed with Web Crypto API (compatible with Workers runtime)
- Tapes stored in Cloudflare KV

Member discussion