Why I'm going back to an iPod and have built an app to get recommendations from humans, not algorithms…
How we listen to music has fundamentally changed with streaming services, but has it all been for the better?
I'm embarking on an experiment: going back to the humble iPod and trying to seek out recommendations from humans instead of algorithms.
This post explores why, and how I built an app using Lovable to get answers to "what's one album you'd recommend for my iPod and why?"
Why switch back to an iPod? Here's my take…
I say my take, it's one that's heavily influenced by Digging the Greats and Filter World by Kyle Chayka… But here we go:
1 - Breaking free from the endless choice
Sure, streaming services offer millions of songs, but if I'm honest - I mostly cycle through the same selection of albums, only occasionally adding new discoveries.
Am I really getting value from that £120 subscription cost when I'm mostly listening to the same tracks?
2 - Getting the joy back in discovering music
Like most, I outsourced my music discovery to algorithms. Instead, I've found asking people "what's one album you'd recommend for me to listen to on my iPod and why?" has sparked so many great conversations.
It's also introduced me to artists I'd never have discovered or sought out in my algorithmic bubble.
3 - Experiencing music how (most) artists intended
Streaming has changed not just how we listen to music, but how it's created. We rarely experience albums as complete journeys anymore - instead, we shuffle between artists and songs.
This means artists are now heavily incentivised to optimise for streaming economics: making songs explosive in the first 30 seconds (when streaming services register a "play") and shorter to match our shrinking attention spans.
4 - Supporting artists meaningfully
Music is completely commoditised. It's like turning your tap on to get a glass of water. But just stop for a moment and think about all the effort that goes into creating songs that you love.
If you've never learned how to play an instrument, get some first hand insight and try to learn one for the first time. This will level up your appreciation of their craft.
Now let's get some perspective on this effort; an artist needs roughly 4,000 streams to earn the same amount as one £10 album purchase on Bandcamp.
Because of this, I'm now trying to my money where my mouth is, and buy music, with a priority focus on emerging artists.
5 - Reducing screen time
When I'm spending less time on my phone, I'm spending more time with people, on fulfilling hobbies or creating.
Having a single purpose device like an iPod is an easy way to help me achieve this, as I'm not going get sucked into a message or other distraction that can easily mean you lose hours of focus a day.
Getting recommendations from humans
I started analogue - carrying a Field Notes with me everywhere and collecting album recommendations from friends, family, and colleagues.
I still use this, but I also wanted a way to scale this approach beyond my immediate circle… and if I'm honest was a good excuse to have a play around with some of these new AI powered app builders.
Enter ipodvibes.com: built with lovable.dev
As a Product Manager who understands the tech fundamentals but isn't a coder, I've always been frustrated about not being able to turn ideas into reality.
So, after seeing this video with the team at Replit, I immediately started to experiment with them.
I decided to give Lovable a spin to build a simple web application that would:
Let people recommend albums
Showcase these recommendations
Allow me to share my thoughts after listening.
The process from idea to live took about 5 hours in total. Here's how it went:
Initial Development
I started with the following prompt:
Can you create me an app that's called "what's on my iPod"? It has the following functionality
People can submit album recommendations by answering the question "if you could recommend one album that I put on my iPod and listen all the way through, what would it be and why"?
When a recommendation has been made, then it's shown as a card with the relevant details
The app admin can mark albums as listened to and add some quick notes that others can publicly see
This gave me my initial skeleton to start building and iterating on.
UI Evolution
Taking some inspiration from classic iPod interfaces, I tried to give this some nostalgic 00s Apple aesthetics.
This involved multiple iterations, particularly around text alignment and card layouts. While some elements proved challenging (like centre alignment), I just tried to adapt and move forward, rather than getting too caught up on trying to perfect it.
Prompt:
"can you make the album card look like the iPhone 5.5 UI? See attached image for reference".
This gave me an initial output of:
But after several prompts like
"can you nudge the top text (e.g. fever to tell)" to the left so it's centred in the card and not offset by the album art on the left?."
I managed to get the cards to look like this:
Now that Lovable have implemented a more precise editing feature, I'm looking forward to giving that a go so I don't lose time trying to tweak the UI!
Adding features
After I started to get the basic cards presenting how I wanted, I started to build up additional functionality:
Integrating YouTube so you can play the featured song
This was something that I thought would be a pain, but with the exception of a few errors that Lovable managed to iron out, it was straight forward.
The prompt to get this working was:
"What would be the best way to enable users to play music from the album cards on the home page? I'm thinking provide a youtube URL to the song, and only play the audio".
Lovable's output:
Let's think through this feature step by step:
Database Changes Needed: First, we'll need to add a youtube_url column to the albums table to store the YouTube links.
Let me propose the SQL changes first:
-- Add youtube_url column to albums table ALTER TABLE albums ADD COLUMN youtube_url text; -- Add comment to explain the column usage COMMENT ON COLUMN albums.youtube_url IS 'YouTube URL for playing the song audio';
Once you approve these SQL changes, I can help implement:
A YouTube audio player integration that:
Only plays the audio (no video)
Replaces the static play/pause icons with functional controls
Shows actual progress instead of the simulated progress
Maintains the iPod-style UI
Admin panel updates to:
Add a field for YouTube URL input
Validate YouTube URLs
Auto-extract song length from YouTube metadata
State management for:
Currently playing track
Pausing when another track starts
Remembering playback position
Would you like me to proceed with implementing these changes after you approve the SQL update?
Authentication flow so only I (hopefully 😅) can access the admin panel
Now, I had a bit of a rollercoaster with the authentication flow:
Initially it was straight forward to set this up with Supabase, and when I got stuck on making sure I had the right admin permissions, I could prompt Lovable to resolve
But when I made subsequent changes to functionality, such as making attributes of albums editable in the admin panel, I'd find conflicts in permissions that needed to be resolved.
They advise setting up authentication early on, which makes sense, but I get the sense you need to be specific about permissions for features / functionalities, as opposed to relying on it to implicitly understand what you expect. Something I'll try next round.
Admin panel for reviewing, accepting and editing recommendations
I got my initial skeleton for the admin panel in place:
I then started to build it out:
As I started to refine, by adding for example the drag and drop feature, I found I had to do several prompts such as the below to get it functional:
Admin panel
- When album is in number one position then up arrow is disabled
- When album is in last position then down arrow is disabled
- When album arrow up is selected, then the album moves up position and numerical order is updated - When down arrow is selected, then the album moves down a position and numerical order is updated - When an album is moved the position is saved Home page
- The album cards are ordered based on the position set in the admin panel
After several back-and-forths, I managed to get it working.
Now the UI for the admin interface was functional, but had some redundancies, such as a button to upload album artwork, instead of a placeholder that could be clicked and then open up a dialog box, so I then started to try to simplify the interface with prompts such as
"Can we simplify the UI on the admin panel starting with the album artwork - Can you make it so that I can click on an album artwork and that opens the upload dialogue? Note if no artwork has been uploaded then the default placeholder is shown Note when an upload has been made it replaces the previous This means the little image button is no longer required"
and
Can we continue to simplify the UI for notes
- Removing the save notes button for notes
- When text is changed in the input field it is automatically saved
- This therefore makes the save button redundant
After several of these, I ended up with my current iteration of the admin interface:
I feel like I got it into an acceptable state. Not the best but done over perfect 😅
My patience had also worn a bit thin after editing a few fields and ending up in a SQL doomloop that required me to wipe the project in Supabase and re-build it (bit more on that in the lessons learned below).
Sharing some lessons learned
Plan before building: Initial excitement led me to dive in without properly planning the data model. This is why I assume I had to restart my Supabase project after hitting a doomloop of SQL errors. Had I done some more upfront design work, I think I would have saved myself at least 1 hour.
Break down prompts: I got better results by building features incrementally rather than requesting multiple pieces of functionality at once. I find it interesting that Lovable suggests numerous features at the start, but it seems more reliable to implement them one at a time.
Build in stable increments: Regular testing and maintaining working versions to fall back is going to prove crucial for me in the next project. Adding anew features often had unexpected impacts on existing functionality.
Departing thought…
The ability to turn ideas into working applications in hours is plain magic. These tools, while not perfect, are going to open up a floodgate of creativity (and probably a sewer at the same time).
I have a few ideas for my next project, which could include apps that:
Help newbies get into the complex tabletop game of Warhammer 40K (yes I’m, a massive nerd).
Makes it easier to pack and get out the house for adventure weekends.
Supports your photography practice with a small community of like minded photographers.