A daily progress companion that shows you whether you're actually moving forward in life — not just checking boxes.
Habit trackers count streaks. To-do apps count tasks. Journals record memories. None of them answer the only question that matters:
"Am I becoming the person I want to be?"
Stride is built around that one question. It isn't a tracker you feel guilty about abandoning — it's a living sky that reflects your momentum, a quiet ledger of your days, and a gentle nudge toward one better decision at a time. No streaks. No shame. No red X's.
| ☀️ A sky that's really yours | The entire app is a sky driven by your real location and time. On-device sunrise/sunset math paints a bright light theme in the morning, a burning orange dusk in the evening, and a near-black starfield at night — the sun rises higher as your momentum grows. |
| 📈 Momentum, not points | One honest score (0–100) answering "if tomorrow looks like today, am I getting closer to the life I want?" Built from three pillars — Progress · Energy · Reflection — and smoothed over time so one great day lifts you and one bad day never erases a good month. |
| 📖 Your day, written for you | Every evening Stride composes a short Daily Story from your wins, friction, and movement — prose, not a checklist. Months become Chapters you can look back on. |
| 🧭 A friction engine that acts | When a blocker shows up 3× in a week, Stride proposes one tiny experiment for tomorrow, then asks the next evening if it helped. Insight → action → verdict. |
| 🎯 Plans, not wishes | Aims are set as implementation intentions — "I will ___ when ___" — the single most evidence-backed behavior-change technique there is. |
| 🌬️ A room to breathe | Box breathing, the physiological sigh, 4-7-8, coherent breathing, and 5-4-3-2-1 grounding — for anxiety, panic, sleep, and focus — with a breathing orb that swells and releases in your hand. |
| 🫀 Body & mind, tracked | Live step counting, sleep logging with a 7-day trend, and six exercise modes with a live session timer — all feeding your momentum. |
| 📳 Haptics that feel expensive | A single haptic vocabulary — a soft touch-down pulse, selection ticks, a seal when something's saved, a rising fanfare for a great day, breath pulses synced to the orb. Quiet, consistent, never overused. |
| 🗄️ A decision vault | Seal the big choices and why you made them, so "why did I choose this?" always has an answer. |
Stride refuses the generic "AI app" look. The whole interface is one idea taken seriously:
The sky is the interface. The sun is the score. The further you move, the higher and warmer it burns.
- Adaptive theme — a palette engine keys every color to the real sky phase (
day→ light,dusk→ orange,night→ black), then makes it burn brighter with momentum. - Liquid glass — the navigation dock uses Apple's real Liquid Glass on iOS 26, an SVG refraction lens on web, and a frosted fallback on Android.
- Editorial type — DM Serif Display for headlines and numerals, Plus Jakarta Sans for everything else.
- Motion everywhere — Reanimated 4 springs, a climbing sun, breathing glows, staggered entrances, a twinkling starfield.
Momentum is deliberately not an arbitrary point total. Each day is scored across three pillars, then blended into your running score:
Progress (50%) — wins logged · morning intention kept · training done
Energy (28%) — sleep in a healthy band · felt energy · steps & movement
Reflection (22%) — closing the day · naming friction · a lesson learned
dayScore = progress·0.5 + energy·0.28 + reflection·0.22
momentum = prev·0.55 + dayScore·0.45 ← exponential smoothing
The smoothing is the point: it's forgiving by design. See src/lib/momentum.ts.
src/
├── app/ # expo-router screens (file-based routing)
│ ├── (tabs)/ # Today · Timeline · Vault + the glass dock
│ ├── onboarding.tsx # three-act intro
│ ├── checkin.tsx # morning ritual (energy · sleep · if-then aim)
│ ├── reflect.tsx # evening ritual → friction engine → Daily Story
│ ├── exercise.tsx # six workout modes + live timer
│ ├── breathe.tsx # breathing & grounding room
│ └── new-decision.tsx # the decision vault
├── components/ # SunRise, PillarBars, Chip, primitives, Screen …
├── lib/ # the brains, all on-device
│ ├── momentum.ts # the three-pillar scoring engine
│ ├── solar.ts # NOAA sunrise/sunset math
│ ├── sky.tsx # location + time → sky phase
│ ├── story.ts # Daily Story & Chapter composer
│ ├── experiments.ts # the friction → experiment loop
│ ├── haptics.ts # the haptic vocabulary
│ └── store.ts # zustand + AsyncStorage persistence
└── theme/ # the SOLAR palette engine & tokens
Everything runs on-device — no backend, no account, your data never leaves the phone. The Daily Story composer exposes an async interface so a hosted model (GPT-4o mini / Gemini Flash) can drop in later without touching a screen.
# 1 — install
npm install
# 2 — run it
npx expo start # then press i (iOS) · a (Android) · w (web)Or scan the QR code with Expo Go on your phone.
Tip: location, step counting, notifications and haptics only come alive on a real device — the browser preview is for layout only.
Stride ships through EAS — Expo's cloud build & submit service. You never need Xcode or Android Studio installed.
One-time setup
npm install -g eas-cli # install the CLI
eas login # sign in (free Expo account)
eas init # link this project to your Expo accountPreview build — share a real app before the stores
# an installable build for testers (internal distribution)
eas build --profile preview --platform android # → shareable .apk
eas build --profile preview --platform ios # → for registered test devicesSend the resulting link to anyone; they install and run the real app.
Production build → App Store & Google Play
# build the store-ready binaries in the cloud
eas build --platform all
# then submit them straight to the stores
eas submit --platform ios # → App Store Connect / TestFlight
eas submit --platform android # → Google Play ConsoleYou'll need paid developer accounts (Apple $99/yr, Google $25 once). EAS walks you through credentials automatically.
Over-the-air updates — ship fixes without a store review
eas update --branch production --message "polish the evening flow"JS/asset changes reach every installed app instantly, no re-submission.
A starter eas.json (create it at the project root):
{
"cli": { "version": ">= 12.0.0" },
"build": {
"preview": { "distribution": "internal" },
"production": { "autoIncrement": true }
},
"submit": { "production": {} }
}Full guide → docs.expo.dev/deploy
- Hosted AI Daily Stories (GPT-4o mini / Gemini Flash)
- Apple Health / Health Connect — automatic sleep & workouts
- One witness — a single person who sees only your weekly chapter
- Weekly reflection & pattern insights ("under 6h sleep → 3× more lost focus")
- Exportable personal timeline
Expo SDK 57 · expo-router (file-based navigation) · TypeScript · React Native 0.86 · Reanimated 4 · react-native-svg · expo-location / expo-sensors / expo-notifications / expo-haptics · expo-glass-effect · zustand + AsyncStorage · DM Serif Display + Plus Jakarta Sans
Stride — founded by Afzal Khan
Don't track actions. Understand progress.