Skip to content
Nachi3D Labs

RéalisationsMogador Chess Club

Mogador Chess Club

En ligne

Un site d'apprentissage des échecs pour un club d'Essaouira — leçons, exercices, présences, points.

ClientAssociation Essaouira Mogador
Année2026
Mogador Chess Club — hero de la page d'accueil
Mogador Chess Club — screenshot 1

Vue d'ensemble

Le Projet

Le site couvre la semaine entre deux séances de l'atelier d'échecs du samedi, à Dar Souiri. Les élèves avancent dans un tutoriel débutant en 13 étapes, trois cours (19 leçons), 40 exercices sur trois niveaux, sept pièges d'ouverture avec leurs réfutations, et une partie contre Stockfish à trois niveaux calibrés. Les enseignants ont leur propre espace : créer des séances, faire l'appel sur un téléphone, debout dans la salle, attribuer des jetons. Les parents détiennent le compte ; les enfants sont des profils rattachés — c'est aussi ce qui permet à un enfant sans adresse e-mail d'utiliser le site.

C'est un site Astro statique sur Cloudflare Workers, avec exactement un îlot hydraté : l'échiquier. Chessground et chess.js ne se chargent que là où il y a un échiquier ; Stockfish pèse 3,6 Mo et n'est jamais mis en précache, il est téléchargé au premier clic sur « jouer ». Supabase stocke les comptes, les séances et les présences derrière la row-level security ; l'agenda public est figé au build, et un trigger de base de données déclenche un deploy hook Cloudflare quand un enseignant publie, si bien qu'une nouvelle séance arrive sur le site en deux minutes environ, sans serveur.

Le club se réunit une fois par semaine — cette contrainte a beaucoup orienté le projet : pas de série quotidienne, pas de classement, aucune idée qu'il serait vertueux de se connecter tous les jours.

Stack

Astro 7
TypeScript
Tailwind v4
Preact
Chessground
Stockfish WASM
Supabase
Cloudflare Workers
Playwright

Fonctionnalités clés

Ce qu'il fait

40 exercices filtrables par niveau et par motif, chaque position vérifiée automatiquement avec chess.js avant publication
Registre enseignant pensé pour un seul pouce : un tap par élève, enregistré immédiatement, sans bouton de validation
Jetons attribués uniquement par un enseignant — solde disponible calculé dans Postgres, si bien qu'une progression falsifiée côté client n'achète rien
Réservation des séances avec capacité par séance garantie par un verrou de ligne, pas par le navigateur
Quatre thèmes complets (clairs et sombres) avec 371 assertions de contraste exécutées en première étape du build
Fonctionne hors ligne en PWA, en français et en anglais, zéro requête tierce sauf si un lecteur clique sur une vidéo

Vous voulez quelque chose comme ça pour vous ?

Décrivez-moi ce que vous aimeriez construire et voyons si c'est un bon fit.