Inspiration

I’m a terrible procrastinator, and I love climbing. I wanted to bring those two parts of my life together.

Keeping habits on my own is hard. Friends and family motivate me to show up, and I wanted an app where we could see our progress and grow together. That became Summit Pact: one mountain, with all of us on the wall.

What it does

Summit Pact turns daily habits into a shared climb. Each person chooses five habits, and every habit completed earns a metre up a pixel-art mountain.

You can climb alone or invite friends and family. Encourage someone who has fallen behind, hold their rope, and reach camps together. Camps protect your progress, so missing a day doesn’t erase everything you’ve done.

Groups can choose a pact, leave a message at the summit, and continue to another mountain. An optional Customization pack adds custom pacts, pennants, outfits, group emblems and postcards. Purchases never add metres.

How we built it

I built Summit Pact with Kotlin Multiplatform and Compose Multiplatform, sharing the app’s screens, climbing rules and much of its visual rendering across Android and iOS.

Firebase handles accounts and shared expedition progress. RevenueCat manages the one-time Customization pack and purchase restoration.

The pixel-art mountains, animated climbers and changing scenery turn everyday progress into a place you can return to.

Challenges we ran into

The hardest part was making encouragement feel helpful. I wanted friends to support each other while keeping each person responsible for their own climb.

Keeping everyone’s progress consistent also took work, especially when moving to a new mountain, returning after time away, or deleting an account.

Another challenge was simplifying the interface. Early screens had too much text. I kept revising the onboarding, controls and artwork so the mountain could explain more of the experience.

Accomplishments that we're proud of

I’m proud of turning a personal struggle into something I want to use with people I care about.

The shared wall gives small daily efforts a visible result. Each mountain has its own identity, and reaching the summit leaves a record of the journey.

I’m also proud of keeping the core climb free. The paid pack lets people make their expedition feel personal without buying an advantage.

What we learned

I learned how much small details affect the experience. A confusing button, a crowded screen or a sudden change in progress can interrupt the feeling of climbing together.

I also learned that the return matters as much as the streak. People miss days. I want Summit Pact to give them a reason to come back and find their friends still there.

What's next for Summit Pact

Next comes testing with more friends and families, listening to their feedback, and making the daily experience smoother.

I want to add more mountains with their own stories, scenery and discoveries, alongside new customization options for existing pack owners.

And maybe one day, I’ll be thinking about my daily habits while climbing the wall of K2 in Summit Pact.

Built With

  • android
  • compose-multiplatform
  • firebase
  • habit-tracking
  • ios
  • kotlin
  • kotlin-multiplatform
  • pixel-art
  • revenuecat
Share this project:

Updates

posted an update —

Summit Pact is getting closer to launch!

This weekend, I tested the shared climb across Android phones and an iPad. Seeing the same expedition on different screens helped uncover some small but important details:

  • Climbers now keep the same lane on every device, in the order they joined.
  • Groups can draw their own pixel emblem.
  • Personal pennants can be hidden.
  • I fixed notification issues and improved the French, Dutch and German translations.

The iOS app has been submitted and is waiting for review. I’ve also refreshed the project screenshots to show the latest design.

Next: finish the demo video and prepare free access to the Customization Pack for judges.

The idea stays simple: keep a habit, gain a metre, and climb with people you care about.

Log in or sign up for Devpost to join the conversation.

Submission history