Inspiration
So I decided to take my health more seriously and get active October last year. I started walking 10k steps a day, running every other day and changing my diet. I noticed improvement with my pace and started running more, doing 1km, 2km, 3km and now 5km runs consistently. This resulted in me trying to find a way to track my best pace for my different runs and noticed I couldnt find it on the Apple fitness app and also wasn't so sure I would find that feature on strava and even so, it would be behind a paywall. So I decided to build HansUp. It was build by the idea that staying active is easier with friends. I wanted to combine fitness tracking, friendly competition, and communication in one private social experience.
What it does
HansUp connects to Apple Health to track steps, distance, calories, workouts, and active minutes. Users can set goals, maintain streaks, earn badges, view recaps, add friends, compare rankings, chat, and join fitness challenges.
How I built it
The iOS app uses SwiftUI, HealthKit, and SwiftData. The backend uses Node.js, TypeScript, PostgreSQL, Supabase Storage, and Google OAuth, with deployment on Render.
Challenges I ran into
The biggest challenges were synchronizing HealthKit data, preventing stale server responses, and keeping years of activity history from slowing down SwiftUI. I learned how to build durable synchronization queues, range-based data loading, social permissions, and responsive mobile interfaces.
Accomplishments that I'm proud of
I built HansUp into a functional social fitness app rather than a static prototype. It combines HealthKit activity tracking, historical insights, goals, streaks, badges, friend activity, rankings, challenges, notifications, and direct or group messaging. I also solved major synchronization and performance issues while supporting years of activity history.
What I learned
I learned how to integrate HealthKit, design durable background synchronization, prevent stale server data from replacing newer device data, and manage large datasets without slowing down SwiftUI. I also gained experience building secure authentication, PostgreSQL-backed social features, local persistence, and responsive interfaces.
What's next for HansUp
Next, I plan to add WebSocket-powered realtime chat, APNs notifications, home-screen widgets, Sign in with Apple, improved challenge automation, and broader testing. I also want to refine accessibility, introduce light mode, and prepare HansUp for TestFlight and App Store distribution.
Built With
- node.js
- postgresql
- swiftui
- typescript
Log in or sign up for Devpost to join the conversation.