Inspiration

Skipping one walk feels harmless.

Then it happens again. The streak disappears, the fitness app becomes another silent icon, and nobody notices.

That was the problem behind Pamoja. Most people already know walking is good for them. What they often lack is a reason to take the next walk today. We wanted to create that reason through the people they already care about.

Pamoja turns individual steps into a shared commitment. Families, friends and small teams work toward one weekly goal. Every walk moves the whole group forward, and every missed day becomes visible in a supportive, private circle.

The name Pamoja means “together” in Swahili. That became our guiding idea: movement feels more meaningful when it belongs to something larger than one person.

What it does

A user creates a private group, invites people they trust and chooses a shared weekly step goal. Pamoja reads eligible step data through Health Connect and keeps the group’s progress and leaderboard synchronized across members.

The free experience includes step tracking, groups, invitations, shared progress and leaderboards.

Premium adds the features that help a group stay together over time:

  • Weekly Review preserves completed weeks and shows how the group performed.
  • Plan Next Week lets the group prepare its next target and allows every member to respond with “I’m in,” “Prefer gentler,” or “Resting this week.”
  • Together Trail transforms ordinary walks into a shared adventure. The group unlocks illustrated chapters through its combined movement, while each member controls their own participation.
  • Multi-group Premium allows one subscriber to support more than one circle.

One person can sponsor Premium for the group, and every member receives the benefits. This makes a purchase immediately useful to several people and gives each group a natural reason to invite others.

How we built it

Pamoja is a native Android application built with Kotlin and Jetpack Compose.

Health Connect provides permission-controlled step access. WorkManager supports background synchronization, while the app remains usable when background access is unavailable.

Authentication, group membership and synchronized activity use Firebase Authentication and Cloud Firestore. Sensitive operations—such as Premium assignment, weekly planning and Together Trail progress—are validated through server-controlled Cloud Functions.

Subscriptions use Google Play Billing through RevenueCat. RevenueCat verifies the customer’s entitlement, while Pamoja’s backend securely assigns that entitlement to the selected group. This separation allows purchases to be restored and moved without letting the Android client grant Premium access by itself.

The interface supports light and dark themes and is localized for US English, UK English, Spanish and Hindi.

Challenges we faced

The difficult part was making every shared number trustworthy.

People can live in different time zones, open the app on different days and synchronize from different devices. We had to give each group one consistent weekly boundary and ensure that completed weeks remain stable after they close.

Background step synchronization brought another challenge. Android manufacturers handle background work differently, and health permissions always belong to the individual. Pamoja therefore treats background access as optional, keeps synchronization explicit and avoids exposing one member’s private health records to another.

Group Premium required careful design as well. A RevenueCat entitlement belongs to a customer, while the benefit belongs to a group. We built a server-owned sponsorship layer that verifies membership, subscription status, expiration and group capacity before granting access. One subscriber can cover the group without every member purchasing separately.

We also learned that empty states matter. A new group cannot wait seven days before the product becomes understandable. Pamoja now explains what will happen, allows planning from the beginning and presents Together Trail clearly before the first adventure starts.

What we learned

Accountability works best when it feels supportive rather than punishing.

A shared goal creates a simple promise: my walk helps us. Weekly history gives that promise memory. Planning gives the group a recurring ritual. Together Trail gives progress a destination.

We also learned that Premium must improve the group’s outcome. People are more willing to pay when the purchase creates lasting value for everyone they invited—better planning, preserved history and an experience they can complete together.

The strongest product loop emerged naturally:

Create a group → invite people → walk together → review the week → plan the next one → continue the adventure.

Each cycle creates another reason to return.

What’s next

Our next focus is deeper long-term motivation: additional Together Trails, richer group milestones, smarter summaries and more ways to celebrate progress without turning Pamoja into a noisy social network.

The vision remains simple.

A walk that would have been skipped becomes a contribution someone else can see. One contribution becomes a shared week. Shared weeks become a habit.

And the habit lasts because nobody is walking alone.

Built With

  • android
  • authentication
  • cloud-firestore
  • compose
  • coroutines
  • crashlytics
  • firebase
  • health-connect
  • hilt
  • jetpack
  • kotlin
  • material3
  • revenuecat
  • widgets
  • work-manager
Share this project:

Updates

Submission history