πŸŽ‰ How We Built a Consumer AI App in 6 Months?

πŸ₯™ The Story of Dinnerfy : Automating Dinner and grocery ordering. πŸ›’

As we launch Dinnerfy today on Product Hunt and share this free gift with the world, it feels like just yesterday when I first thought about working on it.

Many of you might also have great ideas that initially seem easy. However, as you start working on them, time slips away, challenges mount, and success can seem elusive. In these moments, conventional playbook advice often falls short. We built Dinnerfy thoughtfully, prioritizing the first principles of solving customer pain and setting aside everything else (business model, funding, pitching, elaborate UI mockups, and other complexities). Today, hearing customers speak positively about Dinnerfy reassures us that we've passed the test. We developed Dinnerfy from a mere concept (without even a name) to a fully-fledged GenAI consumer app in six months, on a shoestring budget with just two developers. In this post, I'll share the real story of building this product and hope you can apply these techniques in your own product development journey.

Month 1 - Defining the Problem & Target Audience

Effective problem solvers start by clearly defining the problem. A well-defined problem keeps everyone aligned. Most entrepreneurs don’t start with a problem; they start with an idea, which is likely to evolve (pivot!), but the core problem you are solving should remain constant. A good way to define a problem is using the MOM test principles. This approach involves engaging potential users with a naive mindset, more as a friend eager to understand a problem than as someone selling a solution. It's also crucial to identify your target niche. Although it might broaden later, you should start with a specific user persona. For us, that was busy moms with school-age children. We chose this demographic as they were high spenders with limited free time, representing significant pain points. This decision wasn't random; we surveyed 307 people, divided them into different categories, and identified key issues for each.

Our survey data.

Using the Kano method, we pinpointed gaps derived from the difference between importance and satisfaction with current tools. We narrowed our focus to 3 main problems, forming our ICP (Initial Customer Proposition):

1. Need for new, interesting dinner ideas.

2. Saving time on grocery shopping.

3. Making meal preparation fun and involving the whole family.

But Aman, doesn't this approach limit the user base by reducing the number of addressed problems? That's what I used to think, but it's better to fully solve a few problems than to partially address many. We chose to focus on these issues first and ensure complete solutions before moving on to others.

Month 2 - The MVP and Its Features

Once we were confident about the problem, we focused on solving it by developing features. But first, we needed to personify these problems. We interviewed 50 potential customers from our narrowed-down problem set to understand their issues in their own words and how they were currently addressing them. We transformed this into customer journeys, adding various shortcuts that could be built into an app to save time and add convenience. Our focus was on what features to build, not how to build them. That would come later. We also examined what our competitors were doing and their feature sets. We committed to developing a feature only if we could outperform them. After finalizing the feature list, we categorized them into:

  1. Must Have (Necessary features) - 3 Features

  2. Performance (Features that differentiate us from the competition) - 3 Features

  3. Delighter (Features that add joy to our users' lives) - 2 Features

Product Roadmap and feature list.

The next step was to validate these features.

Month 2-3 - Prototyping & Validation

A good entrepreneur thinks like a scientist. It's more important to address real-world problems than to solve problems you perceive the world has. Like a scientist, your job is to prove or disprove your hypotheses. We turned these features into Figma mockups (unpolished at first) and presented them to the same users, observing their responses. We often made changes to the designs on the spot, seeking their approval, or revisited them later with improvements. To keep this process time-bound, we limited ourselves to a maximum of three iterations with the customer, as further changes tend to yield diminishing returns. We also created Notion-based demos with real content for more authentic feedback from users.

Mockups in Miro

Note that up to this point, our expenditure was minimal, as we focused on ensuring we were building the right product. After gaining sufficient confidence, we made our first investment by hiring a small design studio (pingstudio.net). Although I have some design skills, we felt that exceptional design was crucial for user love. Knowing what to focus on and what to outsource smartly saved us a lot of time.

Final Designs

We managed to get the product design done just in time for the backend and AI implementation. We also planned to iterate the design once we had built something. In the end, Chuck and I made the final decisions and stuck with them.

Month 3-4 - Building the Product

Then came the phase of building the actual product. I always adhere to the Lean DevOps approach when developing a product. The aim is to create the app as quickly as possible, prioritizing speed over perfection or scalability. This strategy allows for immediate user feedback. Fortunately, today's tools enable scalable app development without a large team, and many of them are free. We decided to launch our app as a PWA (Progressive Web App) to reduce friction and facilitate rapid iteration.

1. We utilized Airtable for managing all recipes and recipe generation.

2. Supabase for our app backend.

3. NextJS with Tailwind for the app frontend.

4. Lamatic.ai for all AI functionalities. This included Midjourney for generating food images, creating consistent and realistic visuals that users loved. We also used ChatGPT for generating recipe descriptions, instructions, and grocery lists.

5. Posthog for analytics.

Our Sprint in Linear

For product management, we used Linear, a novel approach to development. We broke down features into individual issues and organized them into 2-week cycles, each containing 5-6 issues. As soon as we had something presentable, we showcased it to customers for real-time feedback. We quickly adapted our product roadmap to align with consumer needs. For example, we learned that users did not understand the swipe feature as a week planner, so we replaced it with a new explore screen.

We also launched our landing page during this time using Carrd.co and created a waitlist using tuemilio. This strategy helped us build a list of eagerly awaiting users for launch.

Our user waitlist.

The technical details of our development process are extensive and will be covered in my future posts.

Month 5 - Testing & Iteration

With a functional product in hand, we began user testing. We revisited our initial user group and observed them struggling with what we thought were straightforward tasks. We made frequent overnight fixes and sought their feedback again. All our customer interactions were recorded using tools like Betafi and Traq, allowing us to share issues directly with developers.

User interviews in Betafi.

This stage was challenging but critical for achieving an optimal user experience. After overcoming the initial hurdles, we shifted to self-onboarding, a key component for user adoption. We monitored their screen sessions using Posthog and reached out when necessary to gain deeper insights. We also undertook a second round of design improvements with the same design firm, incorporating lessons learned from user feedback. Ensuring that we revisited these users after resolving issues helped us build trust. With a polished product, we were ready to share a link and invite sign-ups.

Month 6 - Launch

We gradually rolled out invites to our waitlist users, starting with 5, then 10, and eventually 20 per day. Our referral system also encouraged users to invite friends and family. Initially, we reached out to our personal networks, and their referrals brought in many new signups. We launched a refreshed landing page with enhanced clarity and design (check it out at dinnerfy.com β€” it looks great!) and decided to do a Product Hunt launch on January 13, 2024.

Final Launch Graphic

This process marked the completion of our journey from a basic understanding of the problem to launching a fully functional app. There are many more details I haven't covered here, but I plan to discuss them in my future blogs at Build and Scale.

TL;DR Lessons

Focus on solving a few problems first.

  1. Engage with your users rather than making assumptions.

  2. Embrace failure, fail fast, and iterate.

  3. Bootstrap development using NoCode and GenAI as much as possible.

  4. Prioritize time over features and aim for quick releases.

  5. Start small rather than focusing on scaling

  6. Cater to a few users initially and then expand.

I hope you can apply some of these product principles in your own development journey. Feel free to reach out if you have any questions.

I will appreciate if you could support us on our product hunt today and sign up to dinnerfy.

Thank you.

Aman

Join the conversation

or to participate.