Portfolio

  • Companies
    • LUCI Systems LLC
    • Philo
    • DomaClose
    • Bungalow Design System
    • Blocks Design System
    • Stepoff
    • Globespinning
    • Hwy61
  • Projects
    • Personal Website
  • Experiments
    • Side Scroller
    • Game of Life
  • Sage Gatzke
  • Home
  • Resume
  • Portfolio

Stepoff2018

A cross-platform fitness app where teams competed weekly on step counts sourced from Fitbit data, built and published to the App Store and Google Play.

stepoff app icon
stepoff team stats
stepoff team battle

Stepoff was an iOS and Android app built with Ionic and Angular that turned daily step tracking into a social team competition. It was a Ministry of Product internal project — something the team built, published, and hoped would grow into a product. It launched on both the Apple App Store and Google Play and attracted a real user base.

I handled all of the frontend development and design in the Ionic TypeScript app, as well as the full backend: a Node.js and Express API backed by MongoDB, with Google Auth and JWT for authentication and Firebase for push notifications.

Step data synced from the Fitbit API and powered weekly team rankings, charts, and progress feedback. The Fitbit sync was one of the more technically challenging parts of the project. Apple's health data integration added another layer of complexity — we made progress but never fully completed Apple Watch step sync before the project wound down.

Users could join teams, set goals, participate in weekly challenges, and chat with teammates through a custom-built in-app chat. The combination of real-time competition, social features, and wearable data made it one of the more full-featured projects from the Ministry of Product era.

Platforms

AndroidAndroidAppleiOS

Technologies

Ionic 2AngularTypeScriptNode.jsExpressMongoDBFitbit APIGoogle AuthJWTFirebaseChart.js

Features

Fitbit IntegrationTeam CompetitionsWeekly Step ChallengesGoal SettingLeaderboardsChartsIn-App ChatPush NotificationsGoogle Authentication

Repo: Private

App: N/A