morph
Most fitness apps try to motivate with dashboards, goals, and long-term stats. I wanted to test something narrower: would a daily leaderboard and a bit of social pressure be enough to get people walking more?
That became Morph, a competitive step-counter app for friends.
the idea
Morph resets every day. Everyone starts from zero, the ranking updates live, and the only question that matters is who is ahead today.
The app also keeps a streak count and includes a "throw tomatoes" button that sends a push notification to a rival. It is silly, but that small layer of play made the competition feel lighter and more social.
stack
Morph is a PWA built with:
- Angular
- Firestore
- Firebase Authentication
- Firebase Cloud Messaging
- Angular service workers
Realtime leaderboard updates came from Firestore listeners, while push notifications made the social interactions work even when the app was closed.
The hardest part was handling timezones correctly. A daily competition only works if "today" is correct for everyone.
Morph was a useful product lesson in restraint: the app got better as I removed features and kept the competition loop obvious.