Inspiration

I got into fitness recently and found myself asking questions my apps could not answer. Should I focus on weights or cardio? Was I getting stronger? If my shoulder was sore, what could I do instead of an overhead press? As a vegetarian, did I need protein powder, how much protein was enough, and what simple meal could help me reach that target?

My gym app let me log exercises, sets, and reps. Even with months of entries, I still had to work out what the numbers meant. Food tracking lived in another app, so neither could help me understand how my training and eating fit together.

I started asking ChatGPT and Gemini. They could help, but I had to explain my height, weight, goals, diet, recent workouts, and meals each time. Much of that information was already in my logs. I kept typing it again so I could ask one question.

That led to Panko: one place to track training and food, with a coach that remembers what you have done and helps you decide what to do next.

What it does

Panko brings workout tracking, food logging, and an AI coach into one subscription app. It is built for people who want to take care of themselves but do not always have a trainer to ask when they get stuck.

You set your goal when you join. Later, you can ask Coach Panko, "What should I work out today?" It can look at that goal and your previous workouts, then build a workout for the time and equipment you have. The workout is saved in the app, ready to start. Coach Panko is there for more than workout plans: you can also ask about food, recovery, sleep, motivation, or how your training is going. You can speak or type your questions in a wide range of languages, even though the app interface is currently in English.

During a workout, Panko shows the weight and reps you recorded the last time you did each exercise, so you know where you left off and have a starting point for today. As you log more workouts, graphs show how your strength and training volume change for each exercise. You can see progress that is easy to miss from one workout to the next, and spot when you have been stuck at the same level for a while.

You can log a meal with a photo, a voice note, or a short description. Panko estimates portions, calories, and macros, then shows how they fit your daily targets. Each food also gets an A-E nutrition grade inspired by labels used in European supermarkets, with a short explanation of why it received that grade. It gives you a reason behind the rating so you can make a more informed choice next time. There is also a high-protein recipe library for days when you need an idea for what to eat, and a home-screen widget that keeps today's calories and macros in view.

At the end of the week, Panko brings workouts and meals into one review. It shows what changed, points out what went well or where you struggled, and suggests what to try next. You can also take progress photos. The camera can place a faint copy of your previous photo over the live view, making it easier to stand in the same spot and compare changes over time. Those photos stay on your device and are never shared with the AI coach.

How we built it

We built Panko for Android and iOS from one Expo SDK 56, React Native, and TypeScript codebase. Firebase handles accounts, workout and food records, and the AI connection. RevenueCat manages subscriptions and access to the app.

Coach Panko uses Gemini through Firebase AI Logic. The part that took the most thought was connecting the conversation to the rest of the app. We built functions the coach can use to search the exercise catalog, read training history, create and save workouts, and log meals. When it does something, the result appears as interactive UI in the conversation: a workout card you can use, a meal estimate you can review, or a clear record of an action you can undo. The coach only says an action happened after the function succeeds.

We wanted the rest of the app to feel as approachable as the coach. Inspired by Duolingo's use of a character in a daily habit, we made our own mascot, Panko. He appears throughout the app with expressions that suit the moment, from hungry while logging food to proud after a workout. We spent time on the small movements as well. Start speaking to the coach and colour spreads from the microphone across the message box; a pulsing dot and timer make it clear when the app is listening. The response then appears piece by piece, so it is easy to follow what the coach said and did.

The workout and photo flows needed their own solutions. We keep a live workout draft and rest timer available while someone moves around the app, with a small countdown bubble that can be dragged out of the way. For progress photos, we built a custom camera with an optional onion-skin overlay of the previous shot. Photos are stored in the app's storage on the device. Users can choose to copy one to their phone's gallery, but Panko does not upload it to a database or give it to the coach.

Challenges we ran into

The hardest part was giving the AI coach enough access to be useful without giving it unlimited access to the app. We defined the actions it can take, checked that each one succeeded before reporting a result, and protected the underlying data with authentication, App Check, and database rules. We also meter AI use on the server and cache repeatable reports, including the weekly review, so repeated requests do not run up costs.

Getting the coach the right context took work too. A profile alone cannot answer "Am I getting stronger?" The coach needs to read actual workouts and food logs when they matter, then use those records to answer. We built functions for those lookups instead of asking users to explain their history again.

Panko combines a lot of features, and we did not want that to make everyday use feel complicated. We worked on keeping each screen focused, making the coach's actions visible and reversible, and letting people move around the app without losing a workout in progress. Slow connections were another consideration: screens show cached data while refreshing, and the exercise catalog ships with the app.

Accomplishments that we're proud of

Panko is live on Google Play in beta. People have installed it, three users have paid for it, and testers tell us they enjoy using it. We have stayed in touch, listened to their feedback, and improved the app as they use it. That early response matters to us because we built Panko around a problem I had myself: having plenty of fitness data but still not knowing what to do next.

We are proud that the coach can do useful work inside the app, rather than only offer advice. We are also proud of the smaller choices around it: previous sets visible during a workout, a rest timer that travels with you, food ratings with an explanation, and progress photos you can line up without uploading them. These are the parts that make Panko feel useful on an ordinary Tuesday, not only in a demo.

We kept operating costs manageable as well. Firebase handles much of the backend work, while our custom server code stays small. For example, we built the logic that responds to subscription events, chooses when to email users, and respects their preferences; Emailit delivers those messages. That let us run our own campaigns without adding a separate campaign platform early on.

What we learned

Panko is one of my first cross-platform mobile apps. I learned how to build with Expo and React Native, work through native integrations, and prepare an app for store release. I came in with software engineering experience; this project taught me how to apply those principles to a mobile app people use during a workout.

I learned how much product design sits behind a subscription. I had to decide what Panko should offer, how its trial and plans should work, and how to give subscribers reliable access. RevenueCat made the purchase and subscription side much easier to implement.

Fitness and nutrition were new domains for me. I read research behind calorie and protein targets, exercise progress, and strength estimates so the numbers Panko shows have a sound basis. I also learned where estimates have limits, especially when identifying portions from a meal photo.

Finally, I learned to treat AI cost, speed, and security as part of the product. We measured what calls cost, cached repeatable reports and prompts, and built safeguards around usage. Almost every part of Panko taught me something, from protecting user data to making a feature-rich app feel simple.

What's next for Panko: AI Fitness Coach

We want to make Panko more personal as we learn from the people using it. That means improving how the coach understands someone's goals, training history, and food logs, and making its suggestions more useful in everyday situations.

The app interface is currently in English, even though users can speak or type to the AI in other languages. Bringing the full app to more languages is a priority.

We also want to build companion apps for Wear OS and Apple Watch. With a user's permission, wearable activity data could give Panko more context and make the phone app and coach more helpful together.

Built With

  • cloud-firestore
  • emailit
  • expo-router
  • expo.io
  • firebase
  • firebase-ai-logic
  • firebase-app-check
  • firebase-authentication
  • firebase-cloud-functions
  • firebase-crashlytics
  • firebase-storage
  • gemini
  • google-play-billing
  • react-native
  • revenuecat
  • typescript
Share this project:

Updates

Submission history