← projets

Chess Coach — coach d'échecs mobile

Répétition espacée FSRS + moteur Stockfish natif

React NativeExpoNestJSFSRSStockfishTurborepoTypeScript

L'idée

Une app d'échecs qui ne se contente pas d'afficher des puzzles : elle apprend de toi et te fait réviser au bon moment. Deux briques rendent ça possible : la répétition espacée FSRS et un moteur Stockfish natif.

FSRS

Le Move Trainer traite chaque coup d'ouverture ou motif tactique comme une « carte » (façon Anki moderne) : sa prochaine échéance de révision est recalculée selon ta facilité à le retrouver. L'algorithme vit dans un package dédié packages/chess, découplé de l'UI, donc testable sans lancer l'app.

Stockfish en natif

Pas de WebView : le moteur tourne en natif via un Expo Dev Client (expo prebuild). En dev, un mock engine prend le relais tant que le module natif n'est pas buildé (flag extra.useNativeEngine) — l'UI se code sans dépendre d'Xcode à chaque fois.

Données

  • chess.com PubAPI — stats et parties, sans OAuth
  • Lichess API — OAuth2, Opening Explorer proxifié par l'API pour ne pas exposer les tokens côté mobile
  • Base de puzzles Lichess (licence CC0) — sous-ensemble importé côté serveur

Architecture

Backend NestJS hexagonal (Domain / Application / Infrastructure / Presentation), domaine décrit une seule fois via des schémas Zod partagés (packages/types). CI GitHub Actions path-filtered : un workflow par app.

Stack

React Native · Expo · NestJS · FSRS · Stockfish · Turborepo · TypeScript


Retour d'expérience détaillé : Répétition espacée FSRS + Stockfish natif en React Native.