← All work / 03 of 05Flutter · iOS · Private repo

Ascend

SystemSample · tick a quest
LV 12E-RANK2,770 / 3,000 XP
Scores from your Apple Watch, kept on your phone
Recovery · strain · sleep
PlatformiOS · Apple Watch data
LanguageFlutter · Dart
StatusIn progress
SourcePrivate
What it is

Recovery tracking that doesn’t want your account.

Sample · status window
StatusLV 12 · E-rank

Primed

Recovery 80–100%

Push. Go for a personal best today.

Recovery
92%
Strain
6.2
Sleep
8h 12m
Resting HR
52 bpm
HRV
96 ms
LowerHigher readiness →
Reads fromApple WatchHealthKitWHOOP CSV export
3Scores every day
4Readiness levels
0Accounts needed
The problem

Recovery scores usually come with a wearable subscription and a cloud account.

Why I built it

One of the most common tropes in anime is the level-up system. A couple of years ago, when I was trying to get in shape, buying an Apple Watch is what kept me going. Watching my numbers and stats improve was motivating. But numbers alone don’t work for everyone. I’m building Ascend for myself and for anyone who wants self-improvement to feel more fun, by literally leveling up in real life. It connects to your WHOOP and Apple Watch (WHOOP over Bluetooth), with support for more devices coming.

The app

Ascend reads your Apple Watch data through HealthKit and turns it into recovery, strain and sleep scores on your phone. It is free and local-first, with no account, no subscription and no cloud.

How it works
  1. 01
    Read

    Your Apple Watch data, through HealthKit

    HealthKit
  2. 02
    Score

    Recovery, strain and sleep from baselines that damp outliers

    Pure-Dart scoring core
  3. 03
    Rank

    A plain-language level: Primed, Balanced, Strained or Run down

    Readiness
  4. 04
    Level up

    Daily quests, XP, classes and streaks on the same numbers

    Quest Mode
Stack
App
FlutterDart
Data
HealthKitDrift (SQLite)
Scoring
Pure-Dart scoring core
Next
Bluetooth LE · next
Key features
  • A Today dashboard with recovery, strain and sleep scores, and a plain-language readiness level: Primed, Balanced, Strained or Run down
  • Quest Mode: daily quests, XP, classes and streaks built on the same numbers
  • Activity cost and sleep debt: what each kind of workout costs your recovery, and how much sleep you owe
  • Imports a WHOOP CSV export, with WHOOP’s own scores kept apart from Ascend’s
Classes · concept

Pick how you grow.

Your class follows how you train. Lift more and you lean Fighter, sleep well and you lean Cleric. Switch things up and your class shifts with you.

Class 01 · Frontline

Fighter

Built on lifting and hard sessions. The more intensity you bring, the faster you level.

Reads
Strength workoutsActive energyHigh-strain days
Passive
OverloadA new personal best earns bonus XP.
Sample quest
Lift for 45 minutes+150 XP
STR 5StrengthAGI 3SpeedVIT 3EnduranceINT 1FocusWIS 2Rest
Class 02 · Defender

Tank

Built on steady miles and everyday movement. Hard to knock down and slow to tire.

Reads
StepsCardio minutesResting heart rate
Passive
Iron WillOne missed day will not break a streak.
Sample quest
Walk 12,000 steps+100 XP
STR 3StrengthAGI 1SpeedVIT 5EnduranceINT 2FocusWIS 3Rest
Class 03 · Caster

Mage

Built on a calm, focused mind. Breathing, mindful minutes and a strong HRV charge your power.

Reads
Mindful minutesHRVBreathing sessions
Passive
ClarityHigh HRV mornings raise the XP of every quest.
Sample quest
Take a 10 minute mindful break+80 XP
STR 1StrengthAGI 2SpeedVIT 2EnduranceINT 5FocusWIS 4Rest
Class 04 · Skirmisher

Rogue

Built on speed. Fast runs, quick intervals and a rising VO₂ max make you hard to catch.

Reads
Running paceVO₂ maxHeart rate zones
Passive
HasteBeat your usual pace and the run pays double XP.
Sample quest
Run 5K under your average pace+160 XP
STR 2StrengthAGI 5SpeedVIT 2EnduranceINT 3FocusWIS 2Rest
Class 05 · Support

Cleric

Built on rest. Sleep, recovery days and steady routines keep every other stat topped up.

Reads
Sleep durationSleep consistencyRest days
Passive
RestoreA full night of sleep refills your readiness.
Sample quest
Be asleep by 10:30 pm+120 XP
STR 1StrengthAGI 2SpeedVIT 3EnduranceINT 3FocusWIS 5Rest
Class 06 · Hidden · Locked

Ascendant

Hidden until all five stats sit within one level of each other for 30 days. The rarest class, and the one the app is named for.

Reads
All five stats
Passive
AscendEvery class passive, at half strength.
Sample quest
Finish one quest of every class+400 XP
STR 4StrengthAGI 4SpeedVIT 4EnduranceINT 4FocusWIS 4Rest
The hard part

Scores you can trust.

Recovery maths fails quietly. One freak night skews a baseline, and a gap in the data can make a days-old night look like today. Ascend uses baselines that damp outliers, plausibility limits for each metric, and a staleness guard that says “not enough data” instead of guessing.