Inspiration

Every popular calorie tracker on the market is built for weight loss. If you are a hardgainer trying to build muscle and eat in a surplus, the experience feels backwards. The onboarding assumes you want to eat less, the tips are about cutting calories, and the whole product works against your actual goal.

I am a hardgainer myself, and I could not find a tracker that felt like it was on my side. So I built BulkUp AI, a calorie and macro tracker designed from the ground up for people trying to gain weight and build muscle, not lose it.

What it does

BulkUp AI lets you snap a photo of your meal and get an instant AI powered breakdown of calories and macros, no manual logging required. The entire experience, from onboarding to daily tracking, is built around a surplus mindset instead of a deficit mindset. It tracks protein, carbs, and fat against hardgainer specific targets, shows progress toward a weight gain goal, and helps people stay consistent with the habit that actually moves the needle for muscle growth, eating enough.

It is live on the iOS App Store today, and I am currently expanding it to Android through Google Play.

How we built it

I am a solo indie founder, so I designed and built every part of this myself.

  • Frontend: Expo and React Native, styled with NativeWind
  • Backend and data: Convex for real time data and serverless functions
  • Auth: Clerk
  • Payments and subscriptions: RevenueCat, with a 3 day free trial and monthly or yearly plans
  • AI: OpenAI Vision for photo based meal recognition and macro estimation

I also designed the entire UI myself from scratch, which made this project as much a design exercise as an engineering one. I wanted the app to feel warm and motivating rather than clinical, since food guilt is already a common feeling in this category and I wanted to avoid reinforcing it.

Challenges we ran into

Getting AI Vision to reliably estimate calories and macros from a single photo was the hardest technical problem. Food photos vary wildly in lighting, angle, and portion visibility, so I spent a lot of time on prompt design and fallback flows for when the model is uncertain, rather than presenting a wrong number with false confidence.

The other challenge was positioning. Almost every fitness and nutrition app on the App Store is optimized for weight loss keywords and messaging, so building an app, an App Store listing, and a paywall experience that speaks specifically to hardgainers meant going against the grain of what App Store optimization guides usually recommend.

Accomplishments that we're proud of

  • Shipped a fully functioning AI powered calorie tracker solo, from idea to the App Store
  • Designed the entire UI myself, making the app a legitimate design portfolio piece and not just a functional build
  • Launched on Product Hunt and built in public throughout the process
  • Carved out a clear niche, hardgainers, in a category dominated by weight loss apps
  • Currently expanding to Android with a Google Play Developer account already set up

What we learned

Building a niche product forces real discipline. It is tempting to build a generic tracker that tries to serve everyone, but the moment I committed to hardgainers specifically, decisions around onboarding copy, target macros, and even the tone of push notifications became much easier to make.

I also learned a lot about subscription driven mobile apps specifically, RevenueCat made handling trials, entitlements, and cross platform subscription state dramatically simpler than rolling it myself, especially as a solo developer without a dedicated backend team.

What's next for BulkUp AI - Calorie Tracker

  • Launch on Google Play to bring BulkUp AI to Android users
  • Improve AI Vision accuracy with more portion size context and confidence scoring
  • Expand ASO and SEO efforts to grow organic discovery
  • Build community features so hardgainers can share progress and stay accountable
  • Revisit the onboarding paywall experience to improve trial conversion

Built With

Share this project:

Updates

Submission history