Bond turns your daily goals into shared experiences inside Rooms, where you and your friends, family, or teammates support each other, check in, and keep streaks alive together.
Bond is a mobile habit tracker built around the idea that accountability is easier with people you actually care about. Instead of tracking habits alone, Bond places them inside shared Rooms — private spaces where a group of people can see each other's check-ins, celebrate streaks, and gently nudge each other when someone falls behind.
The app is live on the App Store and has been used by real groups of friends and study circles. It was my first independently shipped iOS app — from design to deployment.
Habit trackers are everywhere, but nearly all of them are solo experiences. Bond was built to test one hypothesis: if your friends can see whether you showed up today, are you more likely to show up? The goal was to create the smallest, most friction-free version of that social layer — no complex feeds, no social pressure, just a quiet group that keeps each other honest.
The core unit of Bond is a Room — a private space you create and invite others into. Each Room has its own set of habits that members track together. You can be in multiple Rooms at once, keeping your fitness group separate from your study group, for example.
Every day, members tap to mark a habit complete. Bond calculates and displays each person's current streak, building a friendly competitive layer without needing to add any explicit gamification. Seeing a friend on a 30-day streak is motivation enough.
Powered by Firestore's real-time listeners, check-ins appear for all Room members the moment they happen — no refresh needed. This instant feedback loop is what makes the social accountability feel alive rather than like just another database entry.
The trickiest part was designing the Firestore data model to keep read costs manageable while still enabling real-time group updates. Early versions queried too broadly, causing slow loads on larger rooms. Restructuring the collections around Rooms (rather than users) fixed both the performance and the cost.
Getting through Apple's App Store review process as an independent developer was also a learning curve — the first submission was rejected over push notification entitlement language, which required reworking the privacy description copy before resubmitting.
Bond was the first project where I owned every layer — design, frontend, backend, and deployment. The biggest lesson was how much the data model shapes the user experience. Getting the Firestore schema right early would have saved several refactoring sessions.
Shipping to the App Store also taught me that the last 10% of a project (store metadata, screenshots, privacy policy, review compliance) takes as long as the first 90%. Real shipping is a different skill from building.