Building Kanguru


Most fitness apps do one thing well. A step counter here, a food diary there, maybe a weight log if you're lucky. But none of them talk to each other. You're left stitching together your own health story from a dozen disconnected data points.

That's the problem Kanguru set out to solve — and the challenge Spare Parts helped bring to life.

Kanguru app screenshot
Kanguru app screenshot

The Brief

Kanguru Technologies came to us with a clear vision: build an AI-powered wellness companion that takes a holistic view of health and fitness. Not just calories. Not just steps. The whole picture — activity, nutrition, weight trends, sleep patterns, and the subtle correlations between them.

The app needed to:

  • Track multiple health dimensions simultaneously
  • Use AI to surface insights users wouldn't spot on their own
  • Feel personal, not clinical
  • Ship on both iOS and Android

Our Approach

We started with a two-week discovery sprint. The team embedded with Kanguru's founders to map out user journeys, define the data model, and prototype the AI recommendation engine.

Architecture Decisions

Early on, we made a few key bets that shaped the project:

  1. React Native for cross-platform mobile — one codebase, two platforms, no compromises on native feel
  2. Edge-first AI inference to keep recommendations fast and private
  3. Event-sourced health data so the system could retroactively improve insights as the AI models evolved

Here's a simplified look at how the recommendation engine processes a day's worth of data:

interface HealthSnapshot {
  date: string;
  activity: ActivityMetrics;
  nutrition: NutritionLog;
  weight: number | null;
  sleep: SleepMetrics | null;
}
 
async function generateInsights(
  snapshots: HealthSnapshot[],
  userGoals: UserGoals
): Promise<Insight[]> {
  const trends = analyzeTrends(snapshots, { windowDays: 14 });
  const correlations = findCorrelations(trends);
 
  return correlations
    .filter(c => c.confidence > 0.7)
    .map(c => buildInsight(c, userGoals));
}

The findCorrelations step is where the magic happens — the AI looks across dimensions to find patterns like "you sleep 23% better on days you walk more than 8,000 steps" or "your energy dips correlate with skipping breakfast on weekdays."

Design Language

Kanguru's brand is warm, approachable, and a little playful — "your smartest routine is right in your pouch (er, pocket)." We leaned into that personality throughout the UI.

The goal was never to build another dashboard full of charts. We wanted something that felt like a knowledgeable friend checking in on you.

Key design principles:

  • Conversational tone in all AI-generated copy
  • Progressive disclosure — show the headline insight first, details on tap
  • Celebrate consistency over perfection — streaks matter more than single-day metrics
Kanguru marketing
Kanguru marketing

Challenges Along the Way

The Cold Start Problem

AI recommendations are only as good as the data behind them. For new users with zero history, we needed the app to feel immediately useful — not empty.

Our solution was a guided onboarding that doubles as data collection. By the time a user finishes setup, the system has enough context (goals, dietary preferences, typical schedule) to generate a meaningful first week of suggestions.

Nutrition Logging Fatigue

Nobody wants to log every meal forever. We built a hybrid approach:

| Method | Accuracy | User Effort | |--------|----------|-------------| | Manual entry | High | High | | Photo recognition | Medium | Low | | Recurring meals | High | Very low | | Smart suggestions | Medium | None |

The AI learns which meals repeat and starts pre-filling. After two weeks of use, most users only need to confirm or adjust — not type anything.

Cross-Platform Consistency

React Native got us 90% of the way, but health data APIs differ significantly between Apple HealthKit and Google Health Connect. We abstracted the platform layer behind a unified HealthProvider interface:

interface HealthProvider {
  requestPermissions(scopes: HealthScope[]): Promise<boolean>;
  getSteps(range: DateRange): Promise<StepData[]>;
  getHeartRate(range: DateRange): Promise<HeartRateData[]>;
  getSleep(range: DateRange): Promise<SleepSession[]>;
  subscribe(metric: HealthMetric, cb: Callback): Unsubscribe;
}

This kept the feature code clean while letting each platform adapter handle its own quirks.

Results

Within three months of launch:

  • 50,000+ downloads across iOS and Android
  • 4.7 average App Store rating
  • 68% weekly active retention — well above the health app industry average of ~30%
  • Users who engaged with AI insights were 2.4x more likely to hit their weekly goals
Kanguru app icon
Kanguru app icon

What We Learned

Building Kanguru reinforced a few beliefs we hold at Spare Parts:

  1. AI is a feature, not a product. The app works without AI. The AI makes it better. That distinction matters for reliability and user trust.
  2. Health data is deeply personal. Every architecture decision should default to privacy. We chose edge inference partly for performance, but mostly because users shouldn't have to wonder where their data lives.
  3. Ship the loop, not the feature. The most valuable thing we built wasn't any single screen — it was the feedback loop between tracking, insight, and action.

Kanguru is available now on the App Store and Google Play. If you're building something in the health and wellness space — or anywhere AI meets real-world data — we'd love to talk.