Inspiration

I noticed that pushup apps were getting a lot of attention on TikTok, and that got me thinking: why not turn it into a 1v1 pushup challenge game? Instead of counting reps alone, you compete against someone in real time.

What it does

PushRush lets you start a challenge against a real person, a live 1v1 battle where both phones count their own player's reps on-device using the camera and a pose-estimation model. You can also fight a monster in solo mode: a ladder of opponents (Slime, Goblin, Orc, Troll, Dragon) where you either race the monster to a rep target or outscore it before the timer runs out. Winners earn XP, climb the ranks, and show up on the leaderboard.

How we built it

Since this is a mobile app that behaves like a game, I needed to ship on iOS and Android at the same time, so I chose Flutter. Rep counting runs entirely on-device with ML Kit's . The live battles run over a WebSocket against a Cloudflare Durable Object that owns the match state. The goal was to launch quickly, get real feedback, and iterate.

Challenges we ran into

The biggest challenge has been converting users into paying customers. Games are notoriously hard to monetize through subscriptions, so finding the right balance between a free tier that's genuinely fun and a Pro tier that's worth paying for took a lot of iteration. On the technical side, getting rep detection to be accurate and fast enough for a live match was the other hard part: the pose model has to keep up with fast pushups without draining the battery, and both players need to be counted the same way for the match to feel fair.

Accomplishments that we're proud of

Getting an on-device rep counter to work reliably in a real-time competitive setting. and also we are proud that we did some A/B testing to figure out which paywall convert the best

What we learned

That the hard part of a fitness app isn't the fitness part, it's the retention. Competition and progression do far more to keep people coming back than any workout plan. I also learned a lot about shipping on-device ML in production: the tradeoffs between model accuracy and frame rate are real. And on the business side, monetization needs to be designed into the product early, not bolted on after launch.

What's next for PushRush

More exercises beyond pushups, ranked seasons with proper matchmaking, and friend leagues so groups can compete week to week. I also want to improve anti-cheat so ranked results are trustworthy, and keep tuning the free-to-Pro conversion now that there are real users to learn from.

Built With

Share this project:

Updates

Submission history