A music-sharing experiment I designed and built in the summer of 2026. You handed one song to one person, with one sentence about why. Later it grew into a playlist made by twelve people, one song each, with the names hidden until the end.
Role
Concept, design, build
Ran
Summer 2026, among friends
Status
Sunset September 15, 2026
Built with
Next.js, Postgres, Resend, Spotify
The idea
Liner notes are the part of a record that is about people.
The credits, the thank-yous, the story of the room it was made in. Streaming kept the songs and quietly dropped the liners, and now music mostly finds us because a system noticed a pattern.
In The Liners put the note back and made it personal. Not who played on the record: who handed it to you, and what it means to them. We rarely love a song on its own. We love what it holds, the drive home, the winter an album got you through, the friend who played it for you first. That was the material. Not recommendations. Attachment.
How it worked, 1
Pass a song, with a sentence.
Choose one song, write one sentence about why, and send it to one person. Whoever received it could pass it on with a sentence of their own, and the record kept every hand it had been through, like the stamped card in a library book.
The limits were the design. Three passes a week meant every pass cost something to give. Three in hand at most meant the friend with the best taste never got buried. There was no score, no follower count and nothing that read as a ranking: when a song you passed was handed on, you were told, in words, and that was the whole reward.
How it worked, 2
Make a playlist out of twelve people.
After two weeks of real use the product changed direction. Instead of passing the same song on, you added the one it reminded you of. A chain became a relay: twelve positions, one person each, every song chosen to follow the last.
The rule that made it work was about what you could see. On your turn you could hear every song that came before yours, but you saw only one name: whoever invited you. Taste, with the names removed until the end. When the twelfth song landed the relay locked, every name and note appeared in order, and it became a public playlist with its own page.
How it worked, 3
The clock is on the seat, never on the relay.
A relay of twelve people will stall; somebody always goes quiet. So each turn got 72 hours and one reminder, and a lapsed turn went back to the person before, who could invite someone else. The relay itself never expired. At six songs it was worth keeping, and the person who started it could lock it and publish what existed, or leave it open for as long as it took. Below six, a stalled relay folded back into ordinary passes so nothing anyone added was wasted.
How it worked, 4
Getting someone in without a wall.
Email was identity: no passwords, no app. That is clean, and it is also a wall when you are sitting next to someone and only have their number. So there were three ways to hand over a turn, all arriving at the same page. The rule for the second one was strict: you shared exactly the link the email carried, never a second one.
The look
Ink on paper, not a notification.
The design brief was one sentence: receiving a song should feel like a hand-addressed envelope. A hand-lettered script mark. Four colors taken from a warm page and the ink on it. A serif for anything a person wrote, a plain sans for everything else. On the screen that mattered most, the note was the largest thing, bigger than the song title and bigger than the album art.
Most of it arrived by email, because that is where people already open letters, so the emails were designed as carefully as the pages.
Receiving a song. The note comes first.Your turn in a relay, by email.A finished relay. Every note, in order.
How it was built
One app, and most of it happened in the inbox.
I designed and built it end to end: a single Next.js app on Vercel, Postgres on Neon, mail through Resend, song search and playlist publishing through the Spotify Web API, and listen links for every other platform through iTunes Search and Odesli. An hourly job wound the turn clock and sent reminders.
A few decisions that shaped it
No scores, anywhere. A page about a person becomes a profile, and a profile grows a number. The unit was always the record, never the member.
Nothing was ever deleted. Expiry was a change of status, so the history of every song stayed intact.
Mail could never undo a pass. Emails were composed inside the database transaction and sent only after it committed, so a failed send never lost a song.
Notes were published with the playlist, and people were told first. The notice sat above the field where you wrote, and in every turn email.
What it taught
Songs arrive fine. The hard part is having someone in mind.
It ran quietly, among friends, through the summer of 2026. Every song that was handed to someone was opened. Fewer were handed on. That turned out to be the finding. Delivery was never the problem. What makes a song worth passing is the specific person you are passing it to, and that is not something software can supply.
When that person does exist, a single sentence about why is the most intimate thing a playlist can carry.
How it ended
Shut down on purpose, and written down.
By September it was idle, while the weekly email kept going out. A security review the same week found that fixing two account issues would mean reworking how sign-in worked, and nobody was exposed because every member had already joined. I chose to close it cleanly rather than rebuild it for nobody.
Mail was stopped first, then scheduled jobs, then every sign-in link was revoked, then the database was backed up, verified row for row, and deleted. The domain is kept on purpose, so no one can buy it and inherit old links sitting in people's inboxes. intheliners.com is now a record of the project, with two small working demos of the mechanics. The code, the decisions and a restart plan are archived.