Build & Deploy / build (push) Successful in 18s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.2 KiB
3.2 KiB
StreakFit — Thèse produit : rétention & différenciation
Le problème
Les apps fitness meurent de la spirale de culpabilité : rater un jour casse le streak → sentiment d'échec → abandon. La majorité des apps à streak amplifient le churn. StreakFit inverse ça : le streak est indulgent et social.
Les 5 différenciateurs (ordre d'impact rétention)
1. 🔥 Moteur de streak indulgent — LE cœur (couche functional/streaks)
- Freezes : jetons gagnés par régularité (ex : +1 tous les 7 jours), consommés automatiquement pour couvrir un trou d'1 jour.
- Jours de repos qui comptent : un
streak_daysource='rest' entretient la flamme (objectif = régularité, pas surentraînement). - Objectif hebdo : atteindre X séances/semaine garde le streak "vivant" même sans séance quotidienne (
goals). - Streak repair : logger rétroactivement la veille (fenêtre 24-48h) pour réparer une série.
- Anti-churn by design : la flamme ne meurt pas à cause de la vraie vie.
2. 👥 Streaks de crew — redevabilité sociale (couche functional/crews à venir)
- Rejoindre un crew/box ; flamme collective (le crew maintient une série commune).
- Voir les flammes des membres, un mini-classement bienveillant, nudge quand un membre va casser sa série.
- Le cross-training est communautaire → la pression sociale positive = rétention.
3. ⚡ Log sans friction (couche tracking + front PWA)
- Sets en un tap, timer de repos auto, "répéter la dernière séance", pré-remplissage du dernier poids/reps.
- Offline-first (PWA + background sync) : logger au gym sans réseau, sync au retour.
4. 📈 Célébrer le progrès (couche tracking : personal_records, volume)
- Confettis/anim sur nouveau PR, courbes force/volume, milestones fun ("12 t déplacées cette semaine"), mensurations.
- Progrès visible = motivation. Tout est calculé côté back, renvoyé prêt-à-afficher.
5. 🔗 Tout compte — intégrations (couche technical/integrations + futures strava/garmin)
- Une activité Strava/Garmin entretient le streak (un run compte). Mobilité d'un jour off compte.
- Le contrat
ActivityProviderrend l'ajout d'une source trivial (nouvelle couche, zéro modif du noyau).
Boucle d'engagement (rappels ntfy — couche technical/notifications à venir)
- Cron quotidien : détecte les streaks "à risque" (pas d'activité aujourd'hui, freeze insuffisant) → push ntfy bienveillant.
- "🔥 ta série de N jours a besoin d'une séance aujourd'hui" / "😌 tu as gagné un jour de repos" / "🏆 nouveau PR débloqué".
- Jamais spam : 1 rappel/jour max, désactivable, respect du fuseau (
users.timezone).
Identité visuelle
Thème moderne, accent flamme : base claire (off-white) + dark mode, dégradé flamme orange→rouge (#F97316 → #EF4444), ember/amber (#FBBF24) en highlight. La flamme du streak est le héros visuel (taille/intensité ∝ au streak). Typo sans moderne, chiffres en display bold (le compteur de streak). Cartes arrondies, chaleur subtile.
Priorisation build
V1 (MVP sticky) : streaks indulgents + tracking sans friction + exercices + progrès/PR + PWA installable. V1.1 : rappels ntfy + intégrations (1 provider, ex Strava). V1.2 : crews / social.