- Nature
- App mobile et web
- Stack
- App iOSAndroidExpoReact NativeNestJSSocket.IONext.js 16PostgreSQLRedis
« Est-ce que tu connais vraiment ta moitié ? » Accord transforme la question en jeu : un Duel de dix questions joué en même temps sur deux téléphones, puis un rendez-vous quotidien à deux. Pas de surveillance, pas de publicité, et un abonnement unique pour le couple plutôt que par personne.
Ce que fait l'app
- Le Duel : dix questions en trois manches (« Je te connais », « Qui de nous deux ? », une finale à 3 points), 10 secondes par question, révélation simultanée et score de complicité sur 10, partageable.
- Jouable sans compte depuis le navigateur : un lien ou un code à six chiffres suffit pour rejoindre sa moitié.
- Une question du jour : la réponse de l'autre reste cachée tant qu'on n'a pas répondu soi-même, puis rejoint les Souvenirs.
- La flamme du couple (jours passés ensemble, avec un gel hebdomadaire gratuit et sans culpabilisation), un Défi de 30 jours à relever à deux, cinq tests à deux et des packs de questions thématiques.
- Un espace connecté sur le web et un back-office pour la rédaction des questions, sans aucune réponse intime visible.
Stack et architecture
- Monorepo pnpm et Turborepo : app Expo SDK 57 (expo-router), site et back-office en Next.js 16 et React 19, Tailwind 4.
- API NestJS en verticales (controller, service, repository), Prisma sur PostgreSQL 16, Redis pour l'état des parties, passerelle Socket.IO pour le temps réel.
- Les règles du Duel vivent dans un paquet TypeScript pur, couvert à 100 % par ses tests ; les contrats client et serveur sont des schémas zod partagés.
- Connexion par e-mail, Google et Apple, réponses intimes chiffrées en AES-256-GCM, paiements intégrés StoreKit 2 et Google Play vérifiés par l'API elle-même, sans intermédiaire (désactivés pour la première version).
- Une seule source de jetons de design pour le web et le mobile, contrôlée par un audit qui refuse toute couleur ou taille en dur.
Ce qui a été difficile
Rendre le Duel impossible à tricher alors que les deux joueurs sont souvent dans la même pièce. Le serveur est l'unique arbitre : la question, l'échéance, les réponses et le score ne vivent que chez lui. Une réponse n'est jamais transmise à l'autre téléphone avant la révélation, seul un « a répondu » circule. Les propositions sont mélangées différemment sur chaque téléphone, avec des identifiants opaques, pour que « c'est la B » ne veuille rien dire. Le chrono est tenu côté serveur avec 300 ms de grâce réseau ; chaque client corrige son horloge à partir de l'heure du serveur pour animer la barre. Quitter l'app pendant une question compte zéro, et l'autre le voit.
Ces règles sont testées par des scénarios à deux clients réels : double réponse, réponse en retard, ordre d'arrivée inversé, déconnexion en pleine manche.
État du projet
En développement, pas encore en ligne ni publiée sur les stores : le site, l'API, l'app mobile et le back-office sont construits et testés, la fiche App Store est rédigée. Le nom « Accord » est un nom de travail.
Captures réalisées sur des comptes de démonstration aux prénoms fictifs.



