Ascend

A React Native habit app built around identity, not streaks. Daily check-ins tied to who you want to be, with Firebase sync and RevenueCat subscriptions.

2 min read#React Native#TypeScript#Firebase#RevenueCat

Overview

Ascend is a mobile habit app for iOS and Android. You pick an identity — runner, patient parent, whatever fits — attach daily actions to it, and check in against that. Not against a streak counter.

Problem

Every habit app I tried treated a completed checkbox as the win. Miss a day and you’re back to zero. That never matched how I actually think about change. I care whether today’s behaviour lined up with the person I was trying to be, even when the task list looked messy.

Solution

React Native on the client, Firebase for auth and sync, RevenueCat handling subscriptions. You create identities, hang habits off them, and log check-ins. A journey view tracks progress over time; a weekly reflection flow looks back at what worked.

AI-generated copy covers onboarding and those reflection prompts — two places where hand-written text would get repetitive fast. Not a chat feature. Just generated text where it saves me writing the same thing fifty times.

The UI keeps coming back to one check: did I act like that person today?

Architecture

Mobile app (React Native)


Firebase Auth + Firestore


RevenueCat (subscriptions)


Check-ins → Journey → Reflection

Lessons learned

  • The habit engine wasn’t the hard part. Deciding what question every screen should ask was.
  • Identity labels need to be loose enough to stick (“healthy”) but tight enough to mean something in daily actions.
  • Put the paywall after someone has a week of check-ins, not on first launch.

Related