Harmony
A web app that lets friends share playlists across Spotify, Apple Music, and YouTube Music.
- Role
- Product Designer, Brand Designer, Full-Stack Engineer
- Timeline
- July 2026 – Present
- Stack
- Next.js, React, TypeScript, Tailwind CSS, shadcn/ui, Motion, Supabase (Postgres · Auth · Realtime · Storage), Vercel
- Integrations
- Spotify Web API, Apple MusicKit JS, YouTube Data API v3
Sign in with your streaming service, share playlists with friends on any other.
Harmony is a web app that allows users to share playlists with friends, no matter which streaming service they use. Users sign in with the account they already have, add friends, and send them playlists. Once accepted, the playlist is matched track by track and recreated in the receiver’s library. The app is primarily divided into three screens: “Playlists”, “Friends”, and “Account”. Below is an interactive demo running on sample data, so feel free to tap around and try out each screen.
Playlists
- Your playlists, already here
- This screen lists the playlists you already have on each service you link. The ones here belong to the demo’s sample account.
- Shares arrive in an inbox
- The badge at the top right holds playlists friends have sent. Adding one recreates it in your own library, track by track.

Try it
- To do: Add a playlist from your inbox to your library
- To do: Send a playlist to a friend
- To do: Copy a public link to a playlist

Music is social. Streaming platforms aren't.
The global music streaming population is split into platforms that do not communicate with one another. This digital division can split friends, family, and even romantic partners.
Interviews with specific individuals uncovered the following:
- Multiple couples were made up of one Apple Music user and one Spotify user. Some partners were barely willing to download the competing software to manually transfer songs and playlist recommendations to the other, while others simply gave up.
- Many users refused to even try sharing music with others using competing services, even when the individuals were best friends or romantic partners.
Each service’s share of the world’s music streaming subscribers.
921.6M
people worldwide are subscribed to a music streaming service.
“Do you have friends or family that use a different music streaming service than you?”
74%
had friends or family that used a competing music streaming service.
Existing tools can move a playlist between services, but none of them are built around friends.
Services already exist that allow users to transfer playlists from one streaming service to another, like TuneMyMusic,2 Soundiiz,3 and SongShift,4 though they mainly act as account migration tools. Those that allow playlist sharing can turn a playlist into a link that opens on whatever service the recipient uses — proof that the technology backing Harmony is realistic and commercially viable.
What none of them build is a relationship. Their sharing is a link you generate and paste somewhere — anonymous, one-directional, and finished the moment it's opened. There is no friends list, no inbox of playlists from specific people, no record of who you actually trade music with. Sharing is a byproduct of a transfer tool rather than the point of the product.
Hence Harmony's thesis: be the social layer between services, not another migration tool. Keep everyone on the platform they already love; make the playlist the thing that travels.
| Capability | Harmony | TuneMyMusic | Soundiiz | SongShift |
|---|---|---|---|---|
| Transfers playlists between services | Yes | Yes | Yes | Yes |
| Shares a playlist as a link | Yes | Yes | Yes | Yes |
| Works on any device | Yes | Yes | Yes | No |
| Transfers over 500 tracks for free | Yes | No | No | No |
| Friends list and share inbox | Yes | No | No | No |
I wanted Harmony’s name and logo to spell out music at a glance.
I chose the name for what it suggests. When two singers harmonize, they come together in sync. That matched what I wanted the app to do, bringing several platforms together and syncing playlists across them.
For the logo, I wanted a music symbol people would recognize instantly. A tuning fork came to mind first, since I remembered my music teachers using one to find a pitch and harmonize with it. Then I noticed that in many fonts, the Y at the end of the name already looks like a tuning fork, and that settled the pairing of the name and the symbol.
From there, I only explored display typefaces whose Y was drawn like a tuning fork, and picked Righteous from that set.
I chose purple because it stands apart from the colors of the popular streaming services while still feeling friendly and eye-catching. I made the logo a circle so it would pair with the circular logos of other streaming services, and because it shares its shape with a vinyl record, another music symbol. Finally, I drew the tuning fork inside the circle from the Y in Righteous itself.
- Audiowide
- Kodchasan
- MuseoModerno
- Nova Round
- Trochut
- RighteousFinalRighteous, final
Original concept2023
Refined concept2026
Draft markMuseoModerno
Final markRighteous
Spotify
Harmony
YouTube Music

I designed Harmony’s components so it’s clear what each one does at a glance.
The goal of Harmony’s design system is for every component to show what it does through how it looks. I leaned on conventions people already know from the apps they use every day. A paper plane sends, a badge means something is waiting, three dots hold more options, and a pencil edits.
The system keeps those signals consistent from screen to screen. Its components start from shadcn/ui primitives built on Base UI and take every color, font, and corner radius from tokens based on the brand, so purple always marks the main action on a screen. Decisions about hierarchy, emphasis, and interaction are made once in the system, not re-litigated component by component.
I built the system around the three streaming services from the start. Every playlist carries its service’s logo and a link back to it, and each service gets its own section, so it’s always clear where a playlist lives. Cover art is never cropped, filtered, or covered, and Spotify’s covers use the exact corner radii Spotify asks for.

Every shared playlist is rebuilt, track by track, on the recipient’s own service.
Harmony is a Next.js app written in TypeScript and hosted on Vercel, with Supabase handling accounts, friendships, and shares. Its animations and finishing touches are built with Motion.
A shared playlist stores the track list itself, with each track’s title, artists, album, and ISRC, instead of a live link to the playlist. The recipient can add it to their library whenever they choose, as the share survives the sender editing or deleting the original. Anyone can open a public playlist link without an account.
An ISRC, short for International Standard Recording Code, identifies one specific recording, and the same recording carries the same ISRC on Spotify and Apple Music. Harmony looks each track up by its ISRC first, which makes for a near-exact match across streaming platforms. YouTube doesn’t expose ISRCs, so tracks sent there are found by a scored search. Matching runs in the browser, as required by Apple Music, and shows live progress.
How a share travels
Read the playlist
Harmony reads the sender’s playlist through their service’s public API.
Save a snapshot
The share stores the track list itself, so it outlasts any edits to the original.
Rebuild it
Each track is matched on the recipient’s service, by ISRC first and then by search.
Working within API limits
Every Spotify call goes through one gateway that spaces requests at about 5 per second and, when throttled, waits exactly as long as Spotify asks. YouTube is the tighter limit. Its quota allows 10,000 units a day plus a separate 100 searches,5 and every track headed to YouTube needs a search and a 50-unit insert, so about 100 tracks a day can make it across.
Album mosaics
For a playlist’s cover, YouTube’s API returns the thumbnail of its first video, not the cover YouTube Music shows. That’s why Harmony draws its own, the same 2×2 grid of the first 4 distinct albums that YouTube Music uses. Apple Music playlists without artwork get the same, and every share and link keeps its mosaic with the snapshot.





Sorting YouTube playlists
YouTube returns every playlist a channel owns, with nothing marking which ones are music. Harmony checks whether most of a playlist’s videos are official “Artist - Topic” uploads and files the rest under “Other playlists,” using data it already reads for the mosaics.
- Birdhouse - TopicMusic
- Paper Skeleton - TopicMusic
- Low Orbit Club - TopicMusic
- studio vlog 04Other
Reconnecting one service
When a service revokes Harmony’s access, or Google’s 7-day testing limit expires it, Harmony clears the dead token and offers a Reconnect button. Reconnecting signs in to just that service again, without touching the Harmony session or any other linked service.
SpotifyOPEN SPOTIFYYour Spotify session has expired or been revoked. Reconnect it to see your playlists again.
Reconnect SpotifyLinks that survive sign-in
Invite and playlist links carry a validated ?next= path through the whole OAuth round-trip, so a first-time visitor lands back on the exact invite they clicked — the growth loop’s most fragile step, made boring.
/invite/nickygOpens the link/?next=/invite/nickygSigns in/auth/callback?next=/invite/nickygBack from Spotify/invite/nickygLands where they started
Badges that are actually live
Friend requests and incoming shares light up nav badges through a Supabase Realtime subscription scoped by row-level security, reconciled with authoritative recounts so local actions and server pushes can never double-count.
Harmony is live. Every screen took its shape from what it needed to do, not how it needed to look.
Harmony works end to end today. Users can sign in with any of the three services, link the others, and share playlists with friends — or with anyone, via public snapshot links — while every profile carries its owner’s pinned favorites for friends to save from directly. The primary constraint on growth is external. Spotify and Google keep new applications in development mode with capped user allowlists, so onboarding remains invite-based while the app pursues production API access.
More than anything, Harmony reinforced that form follows function. Every decision became an exercise in communicating the maximum amount of information with the minimum amount of visual noise. I also learned that technical constraints aren’t always limitations; API capabilities, branding requirements, and platform conventions often become the framework that gives a product its character. Designing within those boundaries consistently led to cleaner, more intuitive solutions than trying to fight them.
Moving forward, I plan to keep improving Harmony in a few key ways:
Open sign-ups
Harmony still runs in each service’s development mode, where Spotify allows 5 allow-listed users6 and Google allows 100 listed testers whose sign-ins expire every 7 days. Google’s limits lift once the app passes Google’s verification review, which needs a privacy policy, a verified domain, and a demo video, and YouTube’s daily quota can be raised through a separate compliance audit.7 Spotify is the harder wall. Since 2025 it only grants extended access to registered businesses with at least 250,000 monthly users, which rules out an independent project for now.
Add notes to shares
Let users attach a short note to a share, a one-time message about why they’re sending that playlist to that friend. A playlist’s description travels with it everywhere, while a note would belong to that one share.
Review albums
A new direction worth exploring. Letting friends rate and review albums, and see each other’s reviews, would take Harmony from a playlist-sharing app toward a social hub for expressing your music identity and taste, the way Letterboxd is for film. Profiles’ four favorites already borrow from Letterboxd.
Support more services
TIDAL is the strongest candidate, with an API that covers everything Harmony needs, ISRC lookup included, though its developer terms require TIDAL’s written approval for moving playlists to another service.8 Amazon Music has a large audience, but its Web API is a closed beta for approved partners.9 SoundCloud fits less well, since much of its catalog is user uploads rather than the official releases the other services share.
Notes & references
- Mulligan, M. (2026). Music subscriber market shares Q4 2025: The chess board is set. MIDiA Research. Figures are end-of-2025 global subscriber shares. ↩
- Tune My Music. Share playlists between music services and Plans. Recipients can open the playlist or import it to their own library; the free tier includes sharing and a 500-track transfer limit. ↩
- Soundiiz. Free music smart links for playlist curators and Pricing & Plans. Smartlinks are free and always resolve to the live version of the source playlist. Free transfers take up to 200 tracks at a time. ↩
- SongShift. FAQ and Pro. Described by the developer as “a free iPhone and iPad app”; Pro from $6.99/month adds transfers of any size, batch setup, and playlist sync monitoring. ↩
- YouTube Data API. Quota Calculator and Revision History. Since June 1, 2026, search.list draws on its own quota bucket, 100 calls a day by default, while playlistItems.insert costs 50 of the 10,000 units a day the other methods share. ↩
- Spotify for Developers. Quota modes and Update on Developer Access and Platform Security. Development-mode Client IDs created after February 11, 2026 allow up to 5 authenticated users, and since May 15, 2025, extended quota is open only to registered businesses with at least 250,000 monthly active users. ↩
- Google. Manage App Audience, Sensitive scope verification, and Quota and Compliance Audits. Apps in Testing allow up to 100 test users, whose authorizations expire after 7 days, and YouTube quota beyond the default is granted after an audit against the YouTube API Services Terms. ↩
- TIDAL. Developer Guidelines. Lists “enabling the transfer of data to another service” among the offerings that need TIDAL’s express written approval. ↩
- Amazon. Amazon Music Web API overview. The Web API is a closed beta, available only to developers Amazon Music has approved. ↩
The poll ran on Instagram among 95 college-aged respondents. Competitor details reflect each product as of October 2026. Apple and Apple Music are trademarks of Apple Inc., registered in the U.S. and other countries. Spotify is a trademark of Spotify AB. YouTube and YouTube Music are trademarks of Google LLC. Harmony is not endorsed by or affiliated with any of these services. The people and playlists in the demos are fictional sample data.