built and launched a blind song-swapping app with 680+ users and 2,230+ swaps so far!
live stats, automatically updated
the best song recommendations often come from other people. soundswap turns that behavior into an actual product: you choose a song, someone else chooses one, and neither is revealed until both are submitted.
users can add a note about why they chose a song, save discoveries, react to swaps, and find people whose taste they trust.
music discovery should create connection, not just another algorithmic feed.
soundswap home page (desktop view)
music discovery was getting more algorithmic, but when we asked people how they actually liked finding music, their answers kept pointing back to other people.
friends, djs, record stores, music writers, festival lineups, teachers, and people they met online all came up. what stood out wasn't just where people found music — it was that discovery was often attached to another person.
“i love when a friend sends me something they're listening to :)”
“i ask my friends and people i meet — genuinely a great way to find music.”
“ppl i connect to online, through conversation, sharing artistic ideas and sometimes just asking those i know- online or otherwise- if they've heard anything good lately or their favourite artists/songs.”
quotes from substack users when asked how they find new music
across the responses, a pattern started to emerge: people trusted recommendations from other people, sharing music often created a reason to connect, and this behavior was already happening everywhere — through texts, instagram stories, record stores, shows, and conversations with friends. there just wasn't a product built specifically around that exchange.
what if discovering music felt like an exchange instead of a recommendation?
choose something you want another person to hear and optionally add a note about why you picked it.
your song enters the pool and gets paired with another person's recommendation.
neither song is revealed until both people have contributed.
soundswap started with this simple reciprocal exchange and has grown around it with communities, profiles, reactions, prompts, streaks, messaging, favorites, and more.
early user tests helped us see where the idea worked and where our own familiarity with it was hiding confusion. people liked the surprise of a blind swap, but some wanted a little more say in what kind of music they might receive.
we introduced genre-based communities so people could swap within a type of music they were in the mood for while keeping the actual song and person a surprise. about 15% of users have tried communities so far. it's an optional path for more intentional discovery, not a replacement for the main swap.
“wait, how do i know who i matched with?” came up repeatedly in testing. we had assumed the matching and reveal would be obvious because we had built them. we added onboarding that explains the premise, then walks people through optional profile setup, choosing communities, and finding friends before their first swap.
users also asked for more ways to express their taste and connect after a swap, so we added top five songs and links to apple music and instagram profiles.
we launched on the web first to learn whether people would actually exchange songs with strangers before investing in an ios app. we shared it with friends and family, through my substack, and in reddit communities. hundreds of people signed up and started swapping within the first few weeks.
that gave us enough evidence to invest in mobile. the next question was how to make the experience easier to return to after someone's first swap.
after launch, i built an internal dashboard to follow active users, swap activity, stickiness, and cohort retention. the initial response was exciting, but signups alone couldn't tell us whether people were making swapping a habit. repeat use became a priority.
people told us they didn't want to keep checking the app to see if they had a match. on ios, we added push notifications for matches and streaks so there was a timely reason to come back. we already had the swap loop; the goal was to make returning to it easier. we're continuing to watch repeat behavior as we iterate.
soundswap wasn't just a product and design project. on a two-person team, building it meant working across the frontend, backend, database, native app, third-party apis, notifications, analytics, and deployment.
after the web launch showed demand, we wanted to get soundswap onto phones quickly and support timely match notifications. i compared approaches and chose capacitor to bring our existing react app to ios without rebuilding the product in react native.
that meant working through testflight, native lifecycle behavior, push notifications, app store requirements, and deciding what could remain web-based versus what needed native functionality.
people told us they wanted to hear a recommendation before opening spotify or looking it up themselves. letting them listen inside the swap removed a step at the moment of discovery. spotify gave us the metadata we needed, but reliable previews required another approach.
i combined spotify data with the itunes search api and backend matching logic to surface 30-second previews directly inside the product.
by far one of the most fulfilling things i've ever worked on. i've always wanted to build my own app, so seeing soundswap go from an idea between two people to something hundreds of people use — and eventually onto the app store — still feels a little surreal.
more than anything, soundswap confirmed how much i love working across the entire product process: understanding people, deciding what to build, designing the experience, getting into the code, and shipping something real.
growth hasn't been linear. we've had stretches of 0–2 new users a day, then nearly 100 in a week. a slow week isn't a verdict on the product; it means i need to keep listening, improving, and showing up.
ai-assisted development made it easier to turn ideas into features. that made it even more important to ask what problem a feature solves and whether users actually need it.
testing exposed confusion we hadn't noticed; launch showed demand; usage and feedback shifted our attention to returning for another swap. each taught us something we couldn't learn by planning alone.