🌍 Et si on se cultivait en s'amusant ?
Depuis toujours, j’adore la géographie. Je connais (presque) tous les pays du monde, mais j’ai toujours eu un point faible : retenir leurs drapeaux. Alors, plutôt que de me plonger dans des listes interminables, j’ai décidé de rendre l’apprentissage plus ludique.
C’est ainsi qu’est né Geodle — un petit jeu où, chaque jour, un drapeau apparaît et vous devez deviner à quel pays il appartient. Et pour rendre le jeu accessible à tous, même aux non-experts en géo, j’ai intégré des indices progressifs :
- Le continent du pays recherché
- La direction par rapport à votre proposition
- La distance en kilomètres
Il y a 196 pays et autant de drapeaux à découvrir… ça laisse de quoi jouer pendant un moment 💪
🎯 Objectif : apprendre un drapeau par jour, en quelques minutes, et progresser sans s’en rendre compte.
🕹 Jouer à Geodle : https://geodle.fr

⚙️ La partie technique
Créer Geodle a été l’occasion de mélanger ma passion pour la géographie et mes compétences en développement web.
Stack utilisée
- Framework : NextJS 15
- Langage : TypeScript
- UI : Tailwind CSS et DaisyUI
- Base de données : Base MySQL avec l'ORM Prisma
- Hébergement : Vercel
Fonctionnement du jeu
- Sélection du drapeau du jour Le jeu utilise une seed basée sur la date pour générer le même drapeau pour tous les joueurs, quel que soit l’endroit du monde.
const seed = new Date().toISOString().slice(0, 10); // ex: "2025-08-15"
const dailyFlag = getFlagFromSeed(seed);- Vérification des propositions
- L'utilisateur entre un pays
- Le système compare la réponse avec la solution
- En cas d’erreur, on fournit des indices calculés à partir des coordonnées GPS du pays visé et proposé (grâce à la formule de Haversine)
- Gestion des données
- Une liste des pays avec leurs drapeaux, coordonnées et continents est chargée côté serveur
- Les scores et statistiques sont stockés anonymement dans une base de données MySQL
Difficultés rencontrées
- Assurer que le même drapeau soit affiché chaque jour pour tous, sans stockage utilisateur
- S'assurer que le pays du jour ne soit pas visible côté client (que ce soit dans le code source ou les requêtes réseau) pour éviter la triche
- Gérer la performance et la fluidité même sur mobile
Geodle, c’est un projet qui me passionne, car il mélange apprentissage, fun et code. Si vous aimez la géo ou que vous voulez juste tester vos connaissances, je vous invite à jouer aujourd’hui… et à revenir demain pour le drapeau suivant 😉