Solving Healthy Eating One API Call at a Time

Written by:
Ajit Dixit

March 3, 2026

blog

The last 2.5 weeks have moved quickly – building an app from 0 to 1 is no simple feat. From defining a goal of the app and creating the process flow, building it with token limitations, testing/refining, and finally deploying it is A LOT of work! However, the result was 100% worth it.  

 

The problem that I wanted to solve is “how to promote healthier habits through food?” When I think about this problem, I think of the nutrition of radishes and black beans vs organic chicken breast - and how to track each item at the most granular level. The solution that I landed on led me to build the Cooker-app, which enables the user to:  

 

  • Connect to their local Kroger store via the Kroger API, search its catalog of products and deals, and add them to a Shopping List.  
  • View nutrition information via USDA API when an item is added to a user's Shopping List. When the item is knocked off the Shopping List, it is added to the user's Inventory.
  • View Inventory by category along with an item’s nutrition and date purchased. Items over 7 days old will be identified as 'older'.
  • View Recipe Ideas based off the user’s Inventory via MealDB API. If the user is missing Ingredients for the Recipe, they can add it to their Shopping List from there.
  • Import and save their Favorite recipes to a separate list.
  • Take their saved/favorite recipes and create a weekly meal plan using those items and generate a Shopping List from their planned meals for the week.
  • Track nutrition through reports from the aggregated macros.

 

As I got started, I first utilized Miro to create the storyboard, detailing what each screen should be able to accomplish and what its key features were (Exhibit A below).  

 

Exhibit A

 

Based on the process flow above, I then used Miro’s AI capabilities to generate user stories for each segment and feature. I was then able to feed this information to Claude and start the development process.  

 

First, I needed to build out the pages of the product itself and ensure that it was working correctly – a field maps correctly to another field. In parallel, I needed to build a database to house the information and was introduced to Supabase. Already having deep experience with SQL and databases, this part was easy and Claude was very effective.  

 

Second, we needed to fine-tune the application and add additional features as we tested the base prototype. However, this step took quite a while because new fields were created and needed to be correctly mapped to Supabase and to other pages in the app. Additionally, I was introducing multiple APIs (Kroger, USDA, and MealDB) and needed to configure them to work together correctly. While Claude can be grounded on your code, I hadn’t set-up a GitHub account and needed to do this step manually – in the future, this will be one of the first steps I take. This step also caused a lot of runtime errors and backend errors monitored through the Dev Console, and it was easy to run out of the allotted tokens from Claude which added to the delay. However, after enough debugging, the app finally worked end-to-end!  

 

Last came the Deployment. I’ve been through many deployments and have personally done one for my website. However, this came with a dozen steps and applications to get this ready. First came Web3Forms, which was set-up to ensure that I could administer and troubleshoot issues via email – very simple. Next came Railway, which is a full-stack cloud service that needed to be configured. In Railway, we set up CORS handling, API key security, and Request Management. While this process would be tedious on its own, I was able to expedite the set-up by moving my app to GitHub and establishing a connection. Lastly came the Vercel set-up, which would allow seamless and automatic GitHub deployments in the future. Vercel is also great for hosting static React apps and providing fast global content delivery in the interface. While these set-ups were easy, most of time was spent integrating the two systems.  

 

Overall, this was a fulfilling project, and I plan to build on the app moving forward. In my next set of improvements, I plan to utilize Claude more to make the process more agentic and simpler for the end user. My goal is to create an app that has many features that are accessible through one 1-2 clicks. In addition, I feel this app has the ability to grow into something that other “health tracker” apps does not have – automatically tracking nutrition without having to manually add it yourself.