尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Devenir une nouvelle version de soi — bilan, plan de 30 jours et rituel hebdomadaire pour femmes en transition.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Devenir une nouvelle version de soi. Une web-app mobile-first pour des femmes en transition de vie : faire le point, décider qui l'on veut devenir, et repartir avec un plan de trente jours qui se réécrit selon ce qu'on fait vraiment. Le pourcentage de femmes qui complètent le rituel de la semaine 2. Pas les inscriptions, pas les bilans terminés, pas le temps passé. Un questionnaire qui rend un document est un moment fort suivi de rien ; la seule preuve que ce produit vaut quelque chose, c'est qu'elle revienne une deuxième semaine. Tout le reste de ce dépôt existe pour ce chiffre.檢視完整 README ↗
Devenir une nouvelle version de soi.
Une web-app mobile-first pour des femmes en transition de vie : faire le point, décider qui l'on veut devenir, et repartir avec un plan de trente jours qui se réécrit selon ce qu'on fait vraiment.
Le pourcentage de femmes qui complètent le rituel de la semaine 2.
Pas les inscriptions, pas les bilans terminés, pas le temps passé. Un questionnaire qui rend un document est un moment fort suivi de rien ; la seule preuve que ce produit vaut quelque chose, c'est qu'elle revienne une deuxième semaine. Tout le reste de ce dépôt existe pour ce chiffre.
L'événement à suivre : weekly_ritual_completed avec semaine = 2, rapporté à plan_generated.
/ Une promesse, et la première question du bilan posée tout de suite
/bilan Confidentialité, puis 6 écrans · 22 questions · ~8 minutes
/profil Le Profil de Renaissance — le seul moment animé du produit
/aujourdhui Le retour quotidien : une seule chose au-dessus de la ligne
/plan 30 jours détaillés · 90 jours esquissés · 1 an en une phrase
/rituel 3 minutes par semaine — la boucle de rétention
/recits 11 parcours illustratifs, signalés comme tels
/reglages Confidentialité, export, suppression totale
Node 20 ou plus.
npm install
npm run dev
| commande | ce qu'elle fait |
|---|---|
npm run dev | serveur de développement sur http://localhost:3000 |
npm run build | build de production |
npm run start | sert le build de production |
npm test | 70 tests Vitest sur le moteur et le contenu |
npm run typecheck | TypeScript strict, sans émission |
Aucune variable d'environnement n'est nécessaire, ni en local ni en production. C'est une propriété du projet, pas un oubli : elle rend le déploiement reproductible et garantit qu'aucune donnée personnelle ne peut partir vers un service tiers.
Un moteur de règles déterministe en TypeScript. Pas d'appel LLM : c'est instantané, gratuit, testable, ça marche hors ligne et ça ne dépend d'aucune clé d'API.
src/lib/engine/
score.ts réponses → 0–100 par dimension (jamais affiché : ni chiffre, ni jauge, ni radar)
profile.ts scores → archétype de situation, forces, tensions, sa phrase à un an
plan.ts profil → 4 semaines × ≤3 actions, 1 seule prioritaire
adapt.ts progrès → plan réécrit + la liste lisible de ce qui a changé
Les règles qui font le produit
Math.random, aucune horloge dans la sélection. Deux ouvertures du
même profil donnent le même plan — c'est ce qui rend le moteur testable.Les 92 actions vivent dans src/content/actions.ts. Tout ce qui est local — devise, montants,
services de paiement, villes, guichets — passe par src/config/market.ts : changer de marché,
c'est éditer un seul fichier.
Tout est dans localStorage, derrière l'interface StorageAdapter (src/lib/storage/). Ses
réponses sur son argent, son travail et sa famille ne quittent pas son téléphone. Pas de compte, pas
de base de données, pas de serveur.
C'est un argument produit autant qu'une décision technique, et il est dit en clair dans l'onboarding
et dans les réglages. Brancher Supabase plus tard demande une deuxième implémentation de
StorageAdapter et une ligne changée dans src/lib/storage/index.ts — aucun écran ne connaît le
mode de stockage.
Budget tenu, mesuré sur le build de production :
| contrainte | cible | mesuré |
|---|---|---|
| JS par route (hors polices) | < 200 Ko | 129 Ko au maximum (/rituel) |
| JS partagé | — | 103 Ko |
| bibliothèque d'icônes | aucune | aucune, les icônes sont des <svg> inline |
| images | aucune photo | aucune, tout le visuel est vectoriel |
motion n'est chargé que sur /profil, en import dynamique. prefers-reduced-motion coupe toute
animation.
Hors ligne — vérifié en production. Deux mesures, pas une intention :
fetch, XMLHttpRequest et sendBeacon instrumentés :
zéro appel réseau, y compris pour réécrire le plan. Tout est calculé sur l'appareil, et l'état
vit dans localStorage.renaisens.vercel.app, le service worker (public/sw.js, écrit à la main) s'enregistre,
s'active sur la portée /, et met en cache les six routes de la coquille — /, /aujourdhui,
/plan, /rituel, /recits, /reglages. Vérifié : /rituel revient du cache en 200
text/html.Stratégie : réseau d'abord avec repli sur le cache pour les navigations, cache d'abord pour
/_next/static (noms hachés, donc immuables).
@vercel/analytics et @vercel/speed-insights, derrière src/lib/analytics.ts (silencieux en
développement). Six événements : onboarding_started, onboarding_completed, plan_generated,
first_action_checked, weekly_ritual_completed (avec le numéro de semaine), day30_reached.
src/app/api/waitlist/route.ts, prêt pour Resend ou Supabase, journalise pour l'instant).Les onze récits sont illustratifs, et l'app le dit sur la liste et sur chaque récit. Aucun témoignage inventé n'est présenté comme réel, aucun chiffre de traction n'est fabriqué, aucun partenariat n'est évoqué. Sur ce produit, la confiance est le produit.