Inspiration

Many fitness apps feel like they were made for people who are already fit, highly motivated and happy to track dozens of numbers. Those are often not the people who need help getting started.

I did not want another strict workout plan, complicated dashboard or restrictive diet. Those approaches can work, but for many of us they are difficult to maintain. The real challenge is not being perfect. It is doing a few simple things consistently.

That is where SlothUp comes in.

SlothUp’s mission is to make everyday movement easier to start and more rewarding to repeat. The app combines a low entry barrier with a minimal, visually inviting design. There are no rigid plans and no pressure to perform. You can walk, run, ride a bike or complete a short guided session at your own pace.

Your sloth demonstrates the exercises, reacts to your progress and makes even a few active minutes feel worth celebrating.

What it does

SlothUp turns everyday movement into a simple reward loop.

Users can track a walk, run or bike ride on the map, or start a short guided cardio or strength session. Every full credited movement minute earns one SlothUp.

The collected SlothUps make progress visible throughout the app. Users can work toward a personal daily goal and exchange their rewards for screen time in selected distracting apps through Apple’s Screen Time APIs.

SlothUp includes:

  • Map sessions with routes, distance, steps, pace and cycling speed
  • 2D and 3D maps with Live Activities
  • Guided sessions between 3 and 15 minutes
  • Personal daily goals and planned rest days
  • Weekly and monthly progress
  • Home Screen and Lock Screen widgets
  • Screen Time app shields and earned access

No account, camera or wearable is required. Map sessions, progress tracking and selected guided sessions are free. SlothUp Plus unlocks the complete session library, premium widgets, more Screen Time selections and movement history editing.

How I built it

I built SlothUp with React Native, Expo and TypeScript.

Rive powers the interactive mascot and exercise demonstrations. SQLite and Drizzle ORM store sessions, goals and rewards locally. Native Swift and SwiftUI integrations provide Apple Maps, background location tracking, Live Activities, widgets and Screen Time controls.

RevenueCat manages SlothUp Plus subscriptions and entitlements.

Challenges

The main challenge was hiding a surprising amount of complexity behind an experience that should feel simple and calm.

  • Reliable Map sessions: GPS can drift, jump between buildings or disappear in tunnels. I combined location, motion and step evidence to reward real movement while rejecting implausible jumps, vehicle activity and duplicate minutes.

  • Rive integration: The mascot needed to demonstrate many different exercises, respond to progress and transition smoothly between states without feeling disconnected from the rest of the interface.

  • Screen Time: Authorization, app selection, monitoring and shields run across several native extensions and processes. Their shared state needs to remain synchronized so users receive exactly the access they earned.

  • UI and UX: Map tracking, movement validation, rewards, goals and Screen Time are complex systems. The challenge was turning them into an intuitive flow that still feels smooth, clean and playful.

What I learned

I learned that an app can feel simple while being surprisingly complex behind the scenes. Rive animations, live GPS tracking, Screen Time, widgets and Live Activities often behaved differently on a real device than expected, so I learned to test complete user journeys instead of isolated features.

I also learned that onboarding, clear feedback and the reward experience matter just as much as the underlying technology. Feedback and analytics from early users were valuable, but I learned to interpret them in context, especially because many of SlothUp’s first users were fellow developers rather than its intended audience.

What I am proud of

What started as a fun little hobby project actually became a carefully crafted product with its own personality, visual language and reward system.

I am also proud of the Rive integration. The mascot is not just decoration. It responds to progress, changes its behavior throughout the experience and demonstrates the actual movements during guided sessions.

I am especially proud that SlothUp has a design language that feels genuinely its own. The mascot, colors, typography, Liquid Glass, motion and interactions all work together so that one glance is enough to recognize: This is SlothUp.

What's next

  • Expand the Activity Hub with new movement modes, guided sessions and more flexible routines
  • Use A/B experiments to improve onboarding and the paywall
  • Localize SlothUp for additional languages
  • Grow SlothUp through organic marketing and experiment with paid acquisition
  • Introduce friend invites, shared challenges, supportive leaderboards and light multiplayer experiences

Built With

Share this project:

Updates

Submission history