Repple
Python (FastAPI), Supabase, PostgreSQL, OpenAI API, Pydantic, TypeScript, Anthropic Claude
Unedited notes in my own words, written to explain the thinking behind this rather than summarize it. These are the same notes the chat on this site draws from.
Why it's fun
Working on Repple has been the most fun I've had working on an app. Together with Arjun Chadha, Rishab Chakravarty, and Ayush Guhan, we shipped fast and turned the gym into a game.
Why fitness apps fail non-disciplined users
Fitness apps fail non-disciplined users because they aren't consistent, and the entire value behind progress tracking comes from repeatable consistency. To fix this, our aim was to solve for the lack of discipline in the guise of a fitness tracker app. We repeat the same playbook that Strava and Duolingo use: gamify fitness tracking. The two underlying psychological principles are that you are more likely to do something when you are with friends, and you are more likely to do something when you're in a competition. Combining those two together, building teams to compete against each other, is a two-fold motivation engine that encourages discipline and progress.
Most fitness apps assume that the desire to show up equates to an ability to stay consistent. From all of our customer interviews, we found that was absolutely not the case. People wanted the ability to stay consistent, but they simply lacked the intrinsic motivation to achieve that. We gave them extrinsic motivation, peer motivation, and competitive motivation to achieve the same goals.
It might be a crutch, but extrinsic motivation builds repetition, and repetition can convert to intrinsic motivation, given time and consistency.
Why ELO beats a leaderboard
We wanted to be accepting of users with any experience level, especially those who have never used the app before. If you are genuinely able to stay consistent and put in more work over time than other teams, you should be able to climb the ELO ranking much faster than someone who may have just used the app for a long time. That's why the ELO system matters more in a week-to-week matchup than a raw leaderboard, and that's what most other apps get wrong.
Why I joined
What immediately struck me was how passionate Arjun was about working on the project. I was tired at that point of building projects simply for the sake of building them, and I wanted to work on something that made a difference to real people in the real world. When I saw how passionate he was about the idea, I immediately jumped on board, because I knew that passion would take the project to a place where he would actually commit to it and work on it, and real people would eventually use it rather than it just being a side project.
To be honest, I didn't really see the results of that until six or seven months later. There were a few months where I completely doubted whether we would even make it into a real app. I thought it would be another side project for myself, but we kept working on it and eventually it made it to where it needed to be. The gap between finished and usable, in terms of an MVP, is a big difference. That final push is what working with others allowed me to achieve.
The hardest engineering problem was time
The hardest engineering problem turned out to be time. Weekly resets, daily resets, checkpoints, snapshots, week-over-week comparisons, UTC versus EST versus PST for different users. There were so many small, hard-to-find bugs, especially trying to test something that operates on a daily cadence when tests run on the scale of milliseconds.
AI workout plans: honest assessment
The AI-generated workout plans help with onboarding. That's about it. But onboarding is important. It reduces friction for new users, which helps with retention, at minimal cost.
The business thesis: a data moat
Our goal is to make money off of it. Once we have enough users and enough data, our goal is to sell an algorithm that helps with optimization, recommendation on improvements, plan generation, and data aggregation across users. Future plans include working with gyms to boost foot traffic as well. The entire benefit of a data moat comes from consistent, large-scale data, and by gamifying the app, we make that offering higher quality.
The reason gamification produces better data, not just more data, is that it creates consistency and improvement. This in turn creates more consistent data, as well as more data per user. The more data we have per user, the better the recommendations will be.
Right now we're vulnerable to fast followers. The defense we're building is the community itself: users locked into the competition and progress they've already accumulated, which a clone can't replicate.
Marketing before we had a UI
We put out a reel once a week promoting Repple before we even had a UI. We had skits, jokes, ads, beta testing announcements, but we kept up the pace of production. We had campus-wide challenges and put stickers on every building on campus too.
We landed because we made genuinely funny content. People knew our name, and the reach was high. By marketing early, we built anticipation and education, so that when we released the app, we wouldn't have to spend time teaching people it existed first.
Stickers and campus density
Stickers on every building on campus marketed toward our ICP directly. Since most of our audience is on campus, and we wanted a tightly knit Repple community, we wanted those in the same location to use Repple together. That's why the stickers worked.
Repple does work without local density, but it works best when friends work out together. Local density at a college is the best way to have that become likely.
Quantity beats polish
We just posted everything we made. Quantity beat trying to make something too serious or too perfect. It ended up catching on.
Many videos flopped, but it didn't matter. Enough did well to get the word out. Volume is what matters. If even a few do well, it makes the volume worthwhile.
Our highest performing reel was a Snapchat video recreation: our founder walking up to some people in an academic building and just laughing while telling them about Repple. That's when we realized that just posting authentically catches on. Recognizable authenticity matters. It doesn't matter how.
Distribution is everything for B2C
For Repple, since we are B2C, distribution channels are the most important part. We didn't have budget for Instagram ads, so instead we opted for something that would get high ROI for little cost.
For B2C, that's a universal claim. Without distribution, you will fall flat, especially for something like Repple which needs the network effect to grow.
How we grew Repple
We grew Repple by building a community that cared about our mission. We got the word out through any means necessary.