Inspiration

I and many in the body building community regularly measure and keep track of a few key things in pursuit of our various goals (better physique, lower body fat, greater strength, calorie counting, calorie expenditure through step counting etc.) There are many apps that focus on 1 or 2 of these goals but none that is a one stop shop and more importantly none that can actually help someone analyze and track their body fat percentage - the most important (and expensive) variable in the sport of body building (body building and strength training overlap but are not the same thing). Regular body fat percentage measurement is arguably the most important factor in physique oriented body building but the least accessible in terms of cost and accuracy - until now.

What it does

SculptAI is a toolset for body builders:

AI Body Fat Analysis: Our algorithm calculates your current body fat percentage from just a picture + your height, age, and weight with very high accuracy.

Snap & Track: Track calories with a picture of your food. Our AI calorie scanner is the easiest to use and most accurate on the market, making logging meals and nutrition facts easier than ever.

Personalized Workout Plan: Get a week-by-week plan tailored to your body, lifestyle, and goals based on your body fat percentage.

Custom Meal Plan: SculptAI will tell you exactly how many calories and what breakdown of fats, proteins, and carbs you should eat every day in order to achieve your target physique given your starting physique and body fat percentage.

Social Step Counter: Bringing your body fat % down is half diet and half sustained exercise, we've got you covered on both fronts. Steps are the most effective and accessible way to get cardio into your daily routine, and we just made it really, really fun.

How we built it

Fine tuned GPT model on scraped data set of body fat estimates from subreddits focussed on estimating boy fat percentage + broader internet records of dexa scans and inbody scans. Fine tuned GPT model from Nutritonix+OpenFoodFacts database for calorie and ingredient estimation/identification. Native iOS/SwiftUI for frontend, Firebase for backend. Mixpanel for telemetry, so much telemetry. Storekit + Revenue Cat for in app purchases.

What we learned and Challenges we ran into

Paid Conversion:

Over the last 4ish weeks I managed to get my download to paid conversion rate from below 1% to above 10%. There were many insights and learnings that got me there (along with 27 different app versions), I will go through a few here. (Many are also documented on my Twitter @letsleverup).

Early on, it was clear I built a product people would use if they understood it. In the beginning the very little free marketing I did (by posting on reddit) would get good engagement but once users got to the app (in its first iteration) very few were fully completing onboarding (~50%) and getting to the "aha" moment or point of value, let alone seeing the paywall.

The forced onboarding+confusion of it all was tanking my chance at converting users to paid and the features I had built for free to encourage high retention for non paying users weren't even being seen/used. I went through numerous iterations (since releasing the first version about 3 weeks ago the app is on its 27th build version) meticulously documenting my changes and analyzing my mixpanel data to see what was helping me drive greater completion of the onboarding funnel and ultimately higher conversion to paid users. I won't go through every learning (many are documented on my Twitter e.g. https://x.com/letsleverup/status/1828799849569153496 ) but I'll summarize the key insights here:

The "how it works" moment and the aha moment are related but not the same (but always make sure they get to the aha moment): For example, originally in onboarding 1. I required a user to go through it on first app launch and 2. I required users to upload a photo of themselves so I could immediately estimate their body fat percentage and deliver value in their first run experience.

This is a terrible idea because it increases the friction before proving its worth the friction. I changed onboarding to allow a user to optionally upload a photo OR select from a predetermined list of photos that most matches their body type. This way I was still showing users how good it would work if they put a real photo of themselves (this is the distinction between the how it works vs the aha). The learning here is if the aha requires work from the user, make sure you can prove to them the work is worth it with as little friction as possible. These are two different points in the psychology of the user journey and each has to be considered meticulously. This took my onboarding completion rate from around 50% to over 84%, despite me no longer forcing the body fat onboarding at first launch.

For context on the tangible impact of this, getting through onboarding in the first app run increases the chance of a user converting to paid by 4x.

Getting users to understand the value of your product must truly be shown not explained. We all think that if we can explain our concept to someone they'd get excited about it, understand the value inherently, and therefore want to use it or pay for it. This is almost never true. Good writing (and speaking) is really hard for a reason, no two people truly think the same.

"Showing Value" doesn't literally mean pictures, but it means figuring out the most commonly understood way to demonstrate what a product can do for a user. The evolution of my body fat analysis results view is the culmination of 20 different versions of this view and seeing how best I can "show" a user what they're getting by paying for (or potentially paying for) this product.

By the way, by focussing on this as much as I did, I understandably also improved conversion quite a bit. I show everyone the body fat results view but key results are blurred out if you don't pay for the product ergo its very obvious what you get if you pay and you can very easily, as a user, decide if that something you want to pay for or not.

Accuracy: GPT out of the box is okay at most things but perfect at almost none. For a product like this, accuracy is everything on both the calories and body fat analysis. The hardest part was getting the models to return results with very high accuracy but managed to do so by understanding prompting better than I ever thought I'd need to, learning how to use structured outputs from 4o and understanding how to better fine tune the model with sample data for my specific use cases.

Subscription Management

I initially set out to build this as it was an idea I had been mulling over for some time but the Revenue Cat Shipaton gave me a time bound motivation to actually do it during nights and weekends. I knew the only requirement was to use RevCat for in app purchase management but as a hobbyist iOS developer for over a decade now, I was curious about how hard it would be to use StoreKit vs RevCat so I challenged myself to implement both (as I mentioned earlier, although I've built iOS apps before I never attempted to monetize any of them). The first version I released a few weeks ago used StoreKit and I'm not exaggerating (or trying to curry favor from the judges) when I say I legitimately took an entire Saturday of development (~ 10 hours give or take) to get storekit to work (I also might just be a bad dev). But whether that's because storekit is painful or because I'm a bad dev, RevenueCat, I kid you not, took me about an hour to get to the same point.

But thats not the thing that blew me away. If you got to this point in my submission you've picked up on the fact that I love telemetry and optimizing everything. One of the things I'm shifting focus to now is telemetry around subscriptions (when they're cancelled, retention, offer impacts, conversion, etc). The difference between Storekit and RevenueCat feels like the difference between using my hand versus using a shovel to dig a hole. Storekit is there and it works and I can mangle and build around it do get what I want (for example trying different pricing requires me to create and submit new products then change my code in app to show those products, setting up remote flags to test which perform better, etc), but RevenueCat feels like it was built specifically for optimizing subscriptions (because it was... which makes me wonder what the heck storekit was built for). Everything I could want (and things I didn't know I could want) just exist out of the box by using Revenue Cat and that blew me away (shoutout to testing different paywall optimizations, and subscription cancellation events in real time). I have a very, very intense telemetry set up with mixpanel with a very customized and extensive dashboard but since going live with RevenueCat I find myself checking RevCat before my Mixpanel every morning.

Accomplishments that we're proud of

I built something that people not only use but are willing to pay for and thats an incredible feeling (I didn't eat for a whole day after getting my first paying user because I was so excited and trying to learn from that single data point about what worked and what didn't). I've been building apps since I was a kid but I've never tried to charge for one, probably because I didn't think providing value worth paying for? As of writing this I'm over $700ish in total revenue (which is technically MRR but its been out for less than a month, so next thing to see is MoM retention). That's nothing by almost every standard but its still really exciting to me. I'm also proud of the fact that the number could be a lot lower, if I still had the same paid conversion rate as v1 of the app that number would probably be around $70 (assuming I got the same number of total downloads (~500).

What's next for SculptAI

I've optimized the funnel to a place where I've proven that quality downloads will convert to paid users at a rate of about 10%. Thats something that I think is worth working with and trying to scale the top of funnel for. Thats the thing I want to try immediately. Winning the rev cat prize of getting plastered across billboards in SF could really help me there ;) but assuming that doesn't happen there are three things I am going to try

  1. Paid Ads: right now ARPU is a little over 13 bucks (but caveat I have no retention data just yet). If I can acquire paying users for a little under that (maybe a lot under that?) then we have a real business here :).

  2. Social Media Marketing: I am going to attempt to ramp up my tiktok and instagram posting (maybe ask some friends for help) to see if this product has a format of advertising that entertains and therefore performs well in social media settings. Some themes I'm experimenting with include: "Guess the celbrities body fat percentage" "Here's the difference between Zac Efron at 10% body fat and 6% body fat" etc.

  3. Building social features into the app to see if the current active users (WAU/MAU ratio is close to 90% for paying users) can become a source of organic growth. My intuition is that body fat itself is not something people want to share. I recently released a leaderboard feature based on a proprietary health score calculation that looks at more than just body fat but based on my telemetry people aren't that motivated by it nor do they spend much time on that page. Even more recently, I released a social step counting feature (as I mentioned earlier, step counting or more broadly passive calories burned is a large component of body builders trying to lose body fat). I've built this to be social from the ground up, adding friends, sending funny motivating/taunting messages, encouraging competition with notifications about friends passing each other. And this has actually proven to be reasonably engaging to the users who find it. I want to double down on increasing the number of active users who use this particular feature because it naturally leads them to share the product with their friends.

Built With

  • claude
  • finetunegpt
  • firebase
  • gpt
  • gpt4o
  • openai
  • revenuecat
  • structuredoutputs
  • swiftui
Share this project:

Updates