BikeQuest
Journal de build BikeQuest

Du repo vide à l'app de quêtes vélo payante.

Une timeline partageable des décisions, commits, vérifications et coupes produit qui ont façonné BikeQuest entre le 30 mai et le 21 juin 2026.

Fenêtre de build23 jours

30 mai -> 21 juin 2026

2026-05-3005:51
repocontextgit

Le contexte produit est devenu la source de vérité

Le repo a commencé avec `BIKE_QUEST_CONTEXT.md` : un cadre produit écrit avant que l’app accumule des fonctionnalités.

Commit 5e892ce
Comment
Nous avons initialisé le repo, vérifié la branche et le remote, commité le fichier de contexte, puis poussé le premier commit sur `main`.
2026-05-3008:29
nextjslandingfoundation

L’idée statique est devenue une app Next.js

La première landing a rejoint Next.js, apportant un vrai routage, un déploiement simple et un espace où faire évoluer le discours produit.

Commit 3116a5f
Comment
La première implémentation est restée légère : une page App Router, le CSS global, la marque et un point d’entrée public simple.
2026-05-3019:09
branddesignpositioning

La direction visuelle a quitté les codes du jeu rétro

BikeQuest s’est installé dans une aventure outdoor moderne : adulte, ludique, centrée sur les badges et loin d’un clone de Strava.

DA prompt and constraints
Comment
Nous avons confronté la promesse produit aux publics visés et écarté le pixel art rétro, la fantasy, le néon gamer et les graphiques de performance.
2026-06-0517:01
supabasemcpops

Les outils Supabase ont rejoint la boucle de build

Codex a été relié au projet Supabase pour inspecter et vérifier la base depuis le même environnement de travail.

Supabase MCP connected
Comment
Nous avons ajouté le serveur MCP Supabase, réalisé l’authentification OAuth, vérifié la connexion avec des contrôles équivalents au CLI et installé les compétences Supabase.
2026-06-0519:57
mvpauthprofile

La première boucle MVP a été livrée

L’app a reçu son premier parcours de quête, ses écrans protégés, la gestion du profil, la révélation des badges et son catalogue.

Commits a9ab972 -> e55dc56
Comment
Nous avons construit le minimum autour de l’auth Supabase, des profils rider, du catalogue et du déblocage des badges, avant les fonctions communautaires.
2026-06-0519:59
securityrlsreview

La sécurité est devenue un jalon produit

Un audit du repo a cartographié la vraie frontière de confiance : RLS Supabase, stockage, chemins service-role et routes protégées.

Security review completed
Comment
Nous avons commencé par le modèle de menace, filtré les fichiers générés, examiné les surfaces runtime et validé chaque piste avec le code et le build.
2026-06-0721:14
aiproofvalidation

La validation des preuves est entrée dans la boucle centrale

Les photos et captures d’activité sont devenues des preuves produit, avec des routes de validation puis des limites de débit.

Commits 785a1c4 and 461e543
Comment
Nous avons ajouté la route de validation, relié les exigences de preuve des quêtes et posé des limites pour protéger le flux appuyé par l’IA.
2026-06-0821:06
mobileonboardingprofile

L’onboarding mobile et les droits du profil ont été resserrés

Le parcours d’arrivée a été simplifié pour réduire les impasses et rendre la gestion des permissions plus claire.

Commit 2af3e34
Comment
Nous avons inspecté les écrans d’auth et d’onboarding, ajusté le parcours mobile et aligné la création du profil avec les routes protégées.
2026-06-1416:42
pricinglandingtests

Le prix est devenu simple : 19 € une fois

La landing a abandonné la fausse rareté de lancement pour un paiement unique et clair donnant accès à tout BikeQuest.

Commit 49ee484
Comment
Nous avons d’abord figé le discours dans les tests, puis centralisé le prix dans `src/lib/landing.ts` et mis à jour la section visible.
2026-06-1417:50
badgesprogressdata

La progression a quitté l’XP pour la collection

La gamification est devenue un album : badges débloqués, familles complétées et badges encore verrouillés à la place des niveaux et de l’XP.

Commit f5db8e3
Comment
Nous avons dérivé la progression du catalogue et de `user_badges`, créé un helper pur et réutilisé ce calcul dans l’app, les badges et le profil.
2026-06-1511:27
mvpnavigationux

Le MVP a été simplifié en tableau de badges

Today, le feed et la progression locale ont quitté la boucle rider. Quêtes et badges ont fusionné dans un tableau facile à parcourir.

Badge-first direction
Comment
Les badges sont devenus l’unité visuelle principale, les écrans secondaires ont été redirigés et le détail des quêtes s’est concentré sur la preuve.
2026-06-1522:38
uiprofileshare

Le tableau de quêtes et le profil rider ont été affinés

Les cartes de quête, accents orange, aperçus de groupes, cartes rider et surfaces de partage ont rendu le produit plus intentionnel.

Commits eafecc9 -> deb47f2
Comment
Nous avons amélioré les mêmes écrans centraux plutôt que d’en ajouter : tableau de quêtes, hiérarchie des cartes, profil et partage des badges.
2026-06-1909:26
uploadwebppreview

Les photos de profil sont devenues plus légères et visibles avant l’envoi

L’upload d’avatar a gagné un aperçu local immédiat et une conversion WebP côté client avant l’envoi du formulaire.

ProfilePhotoInput
Comment
Nous avons écrit le test de régression, extrait un petit composant client, redimensionné l’image en 640 × 640 via canvas et remplacé le fichier avec `DataTransfer`.
2026-06-1911:09
aisupabasedocs

Les prompts de validation IA ont été alignés avec les règles produit

Prompts, catalogue, seed, migrations, documentation et lignes Supabase actives ont été resserrés ensemble.

Commit 09e7a56
Comment
Après une revue de cohérence sans modification, nous avons corrigé Roundabout, Dirt Shortcut, 1H Outside et Quiet Road dans chaque source de vérité.
2026-06-1911:28
proofquestux

Les pages d’envoi de preuve sont devenues plus claires

Le parcours de preuve a été simplifié pour que les riders comprennent mieux ce qu’ils doivent envoyer avant la validation.

Commit e223ee2
Comment
Nous avons limité le changement à l’uploader et à la surface de quête, contrôlé le diff, passé les tests et poussé un commit ciblé.
2026-06-2014:44
stripecheckoutpaywall

Stripe Checkout a transformé l’app en produit payant

BikeQuest a reçu un vrai paiement unique Stripe, ses routes de checkout, le webhook et une table d’accès payant.

Commit 1816723
Comment
Nous avons retrouvé l’offre dans le repo, créé le produit et le prix Stripe, ajouté les routes, appliqué la migration Supabase et vérifié la production.
2026-06-2021:34
securitymigrationrls

Le renforcement sécurité et UX a fermé les écarts principaux

Redirections, propriété des preuves, likes du feed, tentatives payantes et politiques Supabase ont été renforcés puis poussés sur `main`.

Commits e38f800 and 64b827e
Comment
Nous avons audité les surfaces runtime, écrit des tests de schéma ciblés, appliqué la migration et vérifié avec tests, lint, build, audit et SQL.
2026-06-2022:08
authonboardingcheckout

Le tunnel d’auth et d’onboarding est devenu plus fluide

Les parcours d’inscription, de connexion et d’onboarding ont été resserrés une fois le modèle d’accès payant en place.

Commit f611ca6
Comment
Nous avons retravaillé l’auth autour de la séquence réelle des routes, plutôt que de traiter checkout, onboarding et accès comme trois sujets séparés.
2026-06-2117:15
launchsharingpolish

L’UX de lancement, les cartes et le partage rider ont été affinés

La mise en page des missions, le partage rider, l’affichage des badges et les objectifs de quête ont reçu une dernière passe produit.

Commits 2610fcb -> f8a1509
Comment
Nous avons continué sur les surfaces visibles : textes d’auth, objectifs, espacements, contenu des cartes de partage et présentation du profil.
2026-06-2120:20
stripeauthlaunch

La récupération de compte et les promotions ont finalisé le build

Les codes promotionnels Stripe, la confirmation d’auth et les pages de réinitialisation ont rendu le lancement payant plus robuste.

Commits 1d3ed86 and d46ef19
Comment
Nous avons ajouté les états pratiques qui évitent du support : réductions, confirmations par email et récupération du mot de passe.