Joao Alves

Engineering Manager at IndeedFlex

Prompt-Driven Product - An Experimental Journey

Posted at — Jun 17, 2025

image

It’s been a while since my last #buildinpublic article collection, so it’s time for a new adventure! It all starts with a simple question: What if you could build a fully functional, cross-platform app, end-to-end, with an AI writing most of the code?

In this article series I will try to do exactly that and you’re invited along for the experiment. I will document the process of creating a Water Reminder App with AI as my primary development, product and UX partner.

Disclaimer: we will focus more on the strategy and human-AI interaction, not on the generated code itself.

Why This Journey? 🗺️

My motivation for this experiment is a blend of a personal reason, my curiosity about the real potential of AI, and a desire to get back to writing.

The Project: A Cross-Platform Water Reminder App 💧

As mentioned above, for very personal reasons, the chosen project is a Water Reminder App. It’s a common concept but should offer enough complexity to be a good test case for this experiment. The app’s core functionality will be about tracking water intake, setting drinking reminders, and providing insights into hydration patterns. The end goal is a deployable, functional product that works seamlessly across different platforms (starting with Android and iOS, with potential for Web later).

This won’t be a one-shot build. I will take an iterative approach, and the series will reflect that. We’ll define feature by feature, build them, test, refine, and repeat.

The Tools of the Trade: My AI Dev and Its Canvas 🛠️

Tech stack and tooling, every engineer’s favourite topic! I could probably have a dedicated collection of articles just talking about this, but I will spare you the very long reads and will go straight to the point.

The Brains: Gemini Pro

My choice for a comprehensive AI partner in this project is Gemini Pro. The decision came down to a few key factors:

In this partnership, Gemini Pro is much more than just a code generator. It’s filling a multitude of roles, from ideation to technical architecture. It’s responsible for transforming my product visions into concrete technical solutions, a task that demands far more than just writing code.

The Canvas: Flutter

My fellow Native Engineers will like me a little less for this one 🙈 but I’ve opted for using Flutter for this adventure.

The Workspace: VS Code

When it came to choosing the IDE to manage all of the generated code for the project, I went with VS Code. It’s more lightweight than Android Studio or IntelliJ. It has official support for everything Flutter and Dart to deliver apps across Android, iOS and Web, which is a crucial requirement. Plus, the smooth experience of deploying to Android and iOS emulators makes it great for easy testing and validation.

My Role: 👨‍✈️

At last, as I’ve mentioned, my role in this unique setup isn’t that of a traditional coder. I will be operating more as the Product Owner, the Prompt Engineer and probably more. Of course, I’ll still wear my ’engineer hat’ frequently, diving in to direct the LLM on lower-level technical aspects when needed. My responsibilities include:

Now you know what to expect from this series. Ready to join the journey and find out if building an end-to-end product with an LLM is possible? Stick around and stay tuned for the next article!

comments powered by Disqus