Why Building Apps Without Coding Feels Like Magic (Until It Doesn't)
Vibe coding is there, but definitely not perfect.
I've been developing with vibe coding tools for the last two or three weeks. Luckily, I have developers in my company, but vibe coding has been a game changer for me as a designer and co-founder of an agency and investment studio where we build apps.
Finally, it is possible for me to build my own apps. Tools I've tried are Lovable, Replit, and Bolt. Every tool has its own strengths and weaknesses. Where Lovable’s strength is creating interfaces, Replit is better at building APIs and making connections with APIs.
Anyways, after building my long list of ideas that are somewhere on my backlog (the side projects that I never had the time to build), I have some plus points and some tips at the end.
First of all, I feel like it's perfect for building small apps, and especially for prototyping. You just feed it your design (or you feel lucky and you don't), and these vibe coding tools just build it for you.
After tens and tens of hours (yes, sometimes I've continued until the middle of the night), I somehow got an interface I was happy with. But then I needed to think about logic. I wanted to connect an external email service and other external microservices.
This is where things became difficult. When I asked Replit or Lovable to implement an API, the so-called agent said they would implement it. But the functionality didn’t work. So what do you do? Say to the agent: "Implement it again, it didn't work." After two or three minutes, the agent said it fixed it, but still, the implementation of third-party services didn’t work. Most of these tools got stuck in a loop. And I just didn’t know how to fix it.
I feel like there is a charm in building apps with these tools, and it's definitely the beginning. But what worries me is that I don’t know how the full codebase works, why things are not working, and if things are secure enough for handling important user data. I only have a chat to have a conversation with...
Pro tip! I’ve found out that when you copy the changelog into ChatGPT or Claude, and ask it to come up with a solution, it can actually write a prompt that will work in these vibe coding tools. Which is great!
But still, I feel like I’m missing the control. And every prompt generates features or lines of code that I’m not using sometimes. And when I ask the agent to delete them, do they actually delete these features in the codebase?
I feel like we’re in a time where we are making these great tools that enable people without coding skills to build apps, which is awesome. But I feel more comfortable if a developer can really explain and help me make the app secure and scalable. If there are no big security issues, then that’s great. But right now, I just don’t know, because I don’t have any control over the codebase. You even hear scary stories on the internet where these apps easily get hacked. And that’s something you simply can’t allow, especially when you’re dealing with sensitive user data. And very important for my role, I also want more control over the design.
That’s why I’m so excited that we’re building Seldon together with the team of Andrei Herasimchuk, where you can design components that developers actually can use in their codebase. Which makes the crossover between developers and designers much better, and gives you actually more control over the output, where you can still leverage AI to make changes to your design.
Anyways, vibe coding tools are out there. I will definitely use them to build small prototypes, so I can share my ideas with the team and get into the problem solving mindset. Or maybe to build small internal tools, where it’s only accessible for my team.
Or maybe there is a hybrid workflow, where you start generating the foundation and let a developer look at the code. Review it. And improve it.
But when it comes to building apps, I need more certainty. More control over the direction of the code, knowing when things get deleted (otherwise, the codebase will be very clunky). And I also want to have more certainty that the user data is safe. And obviously, as a designer, have more control over the design of the app.
For now, I'm just building an internal app that helps me draft good viral LinkedIn posts ideas from interesting tweets I find on X. Because building tools for improving my own productivity is always cool to hack ;)