An experiment with Lovable to understand how AI Software Creation Tools like this work and fit into the product design process.
Like many others in the UX field I’m both uncertain and excited about the changes in our industry. It all seems so vast. Where do you start? What book should I read? But this time around I understand that the uncertainty is an opportunity. We can be curious and define how design will evolve or we can be told by others defining it.
I’m in a leadership position. I may not spend a majority of time in the day to day with tools like Figma, but the advice that I hear most often is to immerse yourself in the tool and how they work. So I thought about something interesting to experiment on and chose to start in Lovable.
Strava, if you're not familiar, is an activity tracking product used by cyclists and runners. Being an avid cyclist I have years of Strava data. The idea was pretty simple: could I use tools like Lovable and Bolt to quickly prototype an experience where you could compare an activity you did today to one from exactly a year ago? Strava already tracks rides, runs, and workouts, but I was curious about what it would look like to work on a specific piece of functionality that I don't see in the product today.
I started by setting up a very basic design system and some Figma files to describe how it should look. Then I wrote prompts explaining the functionality. Pretty quickly, I hit the first tricky part: getting Lovable to talk to the Strava API and pull in the data.
It took a lot of trial and error. At times it felt like I was just circling around the same errors, typing “debug,” and pasting in screenshots over and over. I found it useful to spend time going through tutorials and forums. There is plenty of advice out there on how to prompt, but I also started to learn to ask for the right things. For example responding to what the tool says can help it to break through a tricky error. Lovable would say “ I see the problem, x and y aren’t talking to each other “. By restating the functionality I was looking for and adding the context Lovable had identified I was often able to get to the desired result.
The basic prototype is best thought of as essentially an added feature to a more robust product like Strava, in its purest MVP form were some gaps. For example, if you hadn’t logged an activity on the exact same day last year, the screen just came up empty. If you’d taken a week off or missed a ride, it didn’t show anything.
To fix that, I added some logic so the app would first look for an activity on the same date, then within a week, then within 30 days. I’m still deciding how far to take this experiment, but for example it could end up becoming a date comparison tool where if you don’t have any activities within my specific date range you are able to pick activities to compare.
Working with Lovable I could see it as an amplifier instead of a replacement. What I mean is that it needed me to guide it to the solution I was after, and the only way to guide it was through my specific skill and experience. I know there are folks with one and done prompts that can give you a beautiful product starting from zero, and I want to play with that in the future but being able to guide the process—knowing how things should look, how they should behave, and how to describe that in detail—made all the difference.
I also found that having some familiarity with front-end concepts, like Flexbox or Grid, was really valuable. I’m not an engineer, but even just having built things in tools like Webflow helped me communicate more precisely with the AI. It’s not just about prompting; it’s about knowing what to ask for and what to expect.
It took a lot of trial and error. At times it felt like I was just circling around the same errors, typing “debug,” and pasting in screenshots over and over. I found it useful to spend time going through tutorials and forums. There is plenty of advice out there on how to prompt, but I also started to learn to ask for the right things. For example responding to what the tool says can help it to break through a tricky error. Lovable would say “ I see the problem, x and y aren’t talking to each other “. By restating the functionality I was looking for and adding the context Lovable had identified I was often able to get to the desired result.
Last but not least, after I published, I asked Lovable what were the most effective and helpful prompts. From Lovable:
The most successful prompts were those that either gave exact specifications (like the hex color) or clear functional requirements (like the date range flexibility) while letting me determine the best implementation approach.