
How I vibe coded my first app
Vibe coding is an approach to producing software by using artificial intelligence (AI), where a person describes a problem in a few natural language sentences as a prompt to a large language model (LLM) tuned for coding. (Wikipedia)
Why it matters
GenAI opens a world of software product development to almost anybody. At the same time, there’s a lot of myths regarding what is currently possible to do with the help of AI agent. As technologies develop, it’s important to understand both their limitations and how to deploy them in the most effective ways.
What I built and why
A couple of months ago I was looking for a period tracking app in the Play Store of my Pixel phone and everything that was recommended to me was paid and subscription-based. As a professional pricer (I have been working with product monetisation at Immobilienscout and Google Cloud), I didn’t want to pay a regular fee for such a basic functionality (after all, I just needed to track period dates), and that’s when it hit me – with the recent progress of AI, I could build an app on my own! Moreover, I could also share it for free so that anybody who faces the same issue would be able to use it without overcomplicating things. And that’s exactly what I did.
Looking back, it was not as easy and straightforward as I had imagined, but I totally enjoyed the process. As my app is now entering testing phase, I decided to summarise what has worked for me well and what hasn’t. I hope this article helps those readers who are now thinking of building an app on their own and hopefully inspires them to try.
Who am I
As mentioned, I am no software engineer. My whole career I have been working with corporate finance and monetisation including those for tech companies and products. However, it would be also untrue to say that I have no experience with coding whatsoever. My Bachelor and Master’s Degrees (10 years old as of writing these words) are essentially equivalents of applied math degrees, so all my university years I have been coding labs and home assignments. In my daily job I have also used – and keep using – SQL queries which is arguably also kind of programming. That said, I have never developed anything mobile and have even less experience with front end development and design.
I would argue that for the optimal collaboration with AI you don’t necessarily need a software degree or relevant experience (and that’s a beauty of it), but it would be quite a hard and long process if you don’t even try to understand at least the basic algorithms and coding language – that could help you spot the errors faster and adjust small things without going to AI every time.
What AI I used
I have a ChatGPT Plus subscription, which was completely enough for the use case of coding a period tracking app. I have utilised both o4 (standard one) and o4-mini (which was supposed to be better at coding), and stayed with the standard version of ChatGPT, as o4-mini was taking much longer, with a questionable quality improvement. At a point of complete disappointment I also tried using Claude (free standard version), and it worked great until it hit the free tier limit.
Key numbers
Here are some statistics of my app building process. (I have worked outside of office hours and without a consistent schedule, so the progress reflects my more relaxed approach here).

From my analysis of prompts (yes, I copied them all by hand to do a proper review), I’ve noticed that most of the time I – unsurprisingly – spent on back-end (architecture + implementation + debugging). Front-end code written by ChatGPT worked relatively well in comparison to the back-end, with less debugging rounds required – except for one where me and Chat stuck on a library problem (and it took 84 prompts for me to release that). Less prompts was required for testing: partially because I did quite a lot of it without involving Chat, and partially due to difficulty to draw a line between testing and debugging when using AI.
What works and what doesn’t
Below is my personal review of Gen AI when it comes to creating an app:
1. Syntax, libraries, use cases – great (10/10)
This is the biggest advantage of using AI in my opinion, especially if you have never dealt with the technology/language/libraries you want to use now. I am sure it would have taken me much longer to get into “semi-fluent” mode with Android Studio if I tried to learn it on my own.
Moreover, I would simply not know that there are certain libraries that can help me with my features, so I don’t need to reinvent a wheel. Also, Chat can help to compare the solutions/libraries you could use for the same feature and explain advantages and disadvantages of both.
Granted, AI still hallucinates sometimes, but in my experience more often than not Chat was spot on regarding language and libraries.
2. Writing code from scratch – workable but far from perfect (7/10)
This is something that Internet implies when they say that AI can help you build whatever you want. As in: you explain what you need an app to do, and it simply… writes a clean version. This is unfortunately not the case.
First of all, AI makes a lot of mistakes – and even quite obvious ones, like forgetting to import some libraries, or using some variables without sending them through functions, or simply getting your logic wrong.
Secondly, even a very simple app requires a lot of functions, back-end, front-end, connections, data management. While ChatGPT may appear to remember that all, its memory proved to be selective: whenever we started working with a new part, it could lose track of some other part of the code, or the underlying logic altogether.
Thirdly, as AI goes back and forth adjusting the code, it still takes time to get to a workable version – especially if you are just copying the code and errors back.
In this sense, it’s still not a golden pill.
3. Debugging – solid (9/10)
AI and debugging however were created for each other, really. Android Studio explains errors in such details, that AI can get a hang of it pretty fast and swiftly generate a couple of hypotheses of what went wrong. Often adjusting what Chat told me to led to a permanent fix. I had a couple of cases, when Chat started spiralling and choosing the same solution over and over, but if the error was relatively straightforward, AI would spot and fix it with a decently high probability.
In two cases, when Chat stuck with a problem and could not offer a solution outside of what we have already tried, I was tempted to just delete that part and forget about it, but decided to try another AI agent. I chose Claude and was positively surprised with a completely different approach it took to my code. So in short – one AI definitely doesn’t know all the solutions to your problems, but two actually might.
For prompts, I either copied error messages or sent a screenshot of the error message. As Android Studio tries to compile before you run the code, it is worth to actually ask Chat why something is highlighted even before compiling and whether it signals an error.
4. Product management – solid (8/10)
While AI cannot keep your whole app in the memory (or at least not yet), I found it very useful to work on the “helicopter view” of the features I wanted to have and brainstorm the use cases my app might serve.
AI can offer useful opinions as to how customers would interpret certain features, but my most favourite part was discussing all the features that are already done, drafting the missing ones, estimating time to spend on each one separately and prioritizing them. Chat might not be the perfect product manager, but he did a really good job when I lacked some perspective as to how far we’ve gone and what’s left.
5. Design – functional, but aesthetically poor (7/10)
As I started working on front end of my app (where I have even less experience than back end), I understood that while AI can deliver a workable design of the app, it will ultimately be quite ugly. So prepare to spend some time adjusting and going back and forth deciding which option looks better.
At some point I started sharing my screen to Chat, so that it would give comments as to what changes might improve readability and overall feel. However, I felt that all the recent design movements were simply lost on Chat GPT, and at least for now professional designers’ jobs are probably safe.
My overall take
AI helps us move faster and test our ideas at a fraction of cost and time previously needed – but at least for now, it’s not a seamless experience. AI would not write a (clean) code for you – and if it does, debugging and iterating process will still take a long time. However, if you are willing to invest some time and energy and learn basic programming, AI can substantially widen what you can achieve with those skills: from learning a new environment faster to shipping much better working products.
And while my vibe coding experiment has not been that straightforward as I’d imagined, it was definitely more fun to be able to partner up with AI agent – and even occasionally complain when things get out of hand.
For more startup news, check out the other articles on the website, and subscribe to the magazine for free. Listen to The Cereal Entrepreneur podcast for more interviews with entrepreneurs and big-hitters in the startup ecosystem.