All projects
Mobile app

Steppy

Walking earns you virtual pets — and every pet gets a room you decorate by hand.

Steppy — screenshot
Platform
iOS + Android
Role
Full-stack mobile developer
Type
Client project
Timeline
2026
Status
iOS submitted to the App Store · Android via EAS
// overview

Steppy turns a daily step goal into a collectible game. The app reads step counts straight from the phone's health platform — HealthKit on iOS, Health Connect on Android — and rewards consistent walking with virtual pets. Hit your goal enough days in a row and a new animal arrives, delivered in a sack the player opens.

Each pet gets its own home, which the player decorates: furniture is dragged into place freely, layered front-to-back, and saved per pet. Pets can be dressed in hats, and rooms re-skinned with wallpapers and floors. Two in-app currencies are earned by walking and spent in the shop, alongside a monthly Seasonal Pack sold as a real in-app purchase.

Around that core sits a full social and progression layer: friends and leaderboards, gift-sending, a daily trivia card, a streak calendar, a world map of walking progress, and push notifications.

What makes the project unusual is how much of it is content, not code. Pets, hats, furniture, wallpapers, categories, seasonal packs and new-player gift bundles are all database-driven and managed from admin screens built into the app itself — so the client adds new content and tunes how every item sits on every animal without a developer or an app-store release.

Scale
14
User-facing screens
8
In-app admin tools
34
Components
12
Custom hooks
50
Database migrations
2
Edge functions
// what it does

Key features

Step tracking & progression

  • Native health integration on both platforms (HealthKit / Health Connect)
  • Background step syncing, so progress updates without opening the app
  • Streak-based pet rewards with a calendar showing which day earned which pet
  • Daily step goals, milestones, and two earned currencies

Pets & decoration

  • Drag-and-drop room decorator with free positioning, depth layering and room boundaries
  • Per-pet saved layouts
  • Hats with per-species fitting, including flip poses and behind/in-front rendering
  • Wallpapers, floors and a categorised furniture catalog

Social

  • Friends, leaderboards, and progress comparison
  • Gift sending and a gift inbox
  • System-wide announcements that can carry a gift with them
  • Push notifications

Commerce

  • Monthly Seasonal Packs sold as a real in-app purchase (RevenueCat)
  • Server-verified delivery — purchases granted by a webhook using a service-role key
  • In-app shops for furniture, designs and hats

Onboarding

  • New players receive a starter pet paired with a curated furniture gift, presented as an animated housewarming celebration
  • A game-style guided tutorial with spotlight coach marks that teaches dragging, tapping and decorating
  • Features unlock progressively over a player's first days

Built-in admin tooling

  • Visual hat calibration — position, scale and rotate a hat on a pet by touch, then clone that fit across the whole roster
  • Pet and furniture scaling tools
  • Furniture category manager
  • Welcome-gift bundle builder
  • Broadcast notifications with attached gifts
// engineering

The hard parts

The problems that shaped the architecture, and how each one was solved.

01

Native health data on two very different platforms

HealthKit and Health Connect expose steps in incompatible ways, with different permission models and different background behaviour. Both are wrapped behind one interface, with custom Expo config plugins to inject the native entitlements Expo does not ship.

02

A gesture-driven room decorator

Furniture is positioned by touch with free-form dragging, depth ordering, and boundaries that hold on any screen size — while the pet itself is independently draggable in the same space.

03

A content pipeline instead of hardcoded assets

Every cosmetic — pets, hats, furniture, wallpapers, categories, gift bundles — is a database row with an admin screen behind it. Adding a new animal or a seasonal collection is a content task, not a release.

04

Correctness enforced in the database, not just the app

Access control runs on row-level security policies; anything a client must not be trusted with — granting paid packs, awarding currency — is a SECURITY DEFINER function. Rules like "a pet wears exactly one variant of a hat" are held by partial unique indexes and triggers, so no client can violate them.

05

Server-verified in-app purchases

A Supabase Edge Function receives RevenueCat's webhook, verifies a shared secret, and grants the pack server-side with a service-role key. The client's own grant path is best-effort only and ownership is confirmed by polling — so a tampered client cannot award itself paid content.

06

Full landscape support

Every screen except the pet's room reflows for landscape, with safe-area handling for notches and gesture bars that move to the sides when the phone rotates.

// stack

Built with

Mobile

React Native 0.81Expo SDK 54 (New Architecture, Hermes)TypeScriptExpo Router (typed routes)React Navigation

Native modules

HealthKit (react-native-health)Health ConnectCustom Expo config pluginsBackground Fetch & Task ManagerExpo Notifications + NotifeeSensors, Haptics, Screen Orientation

Animation & interaction

ReanimatedAnimated APIPanResponderGesture HandlerLottiereact-native-animatable

Backend

Supabase PostgreSQLRow Level SecuritySECURITY DEFINER RPCsRealtime subscriptionsStorageEdge Functions (Deno)

Payments

RevenueCatApp Store & Google Play IAPWebhook-verified fulfilment

Delivery

EAS Build & SubmitApp Store ConnectGoogle Play Console
// screens

Inside the app

Tap any screenshot to open it full size.

Every pet gets a room the player decorates by hand — furniture dragged into place, hats fitted per species.
Pet progress, the current streak and a daily trivia card on the home screen.
Two earned currencies, and the day's step count against the goal.
Coins accumulate as steps are logged, with the next one always in sight.
The reward for walking: a growing roster of animals, each stamped with the day it was earned.
Owned furniture, with spares tracked separately so they can be gifted.
Wallpapers and floors re-skin any pet’s room.
Hats are fitted per species so they sit correctly on every animal.
Spare items can be picked from the collection and sent to a friend.
The shop hub: daily furniture, the design studio, and the current Seasonal Pack.
Monthly Seasonal Packs are a real in-app purchase, fulfilled server-side by a RevenueCat webhook.
Raccoon's Shop rotates a fresh set of furniture every day.
Flamingo's Studio sells wallpapers and floors for the second currency.
A world map charts walking progress across regions.
Available for hire

Ready to bring your
idea to life?

Let's discuss your project and build something exceptional together. Get in touch via Fiverr, WhatsApp, or send me a message.

> haseeb_

Full Stack Developer specializing in MERN, React Native, Supabase & Firebase. Turning ideas into production-ready applications.

Quick Links

Connect

© 2026 Haseeb Ansari. All rights reserved.

Built with React + TypeScript