Cet article aborde étape par étape ma migration de Mapstr vers un site utilisant Jekyll1 pour sauvegarder mes lieux en tout genre.
Tout à commencer lorsque Mapstr est passé à l’abonnement payant pour continuer à pouvoir ajouter des lieux (écran à gauche sur l’image). À l’époque j’avais plus de 300 adresses sauvegardées, j’avais donc atteint le quota. Je comprends parfaitement qu’un service soit payant néanmoins, mon usage de cette application était tellement limité que je ne me voyais pas payer. De plus, la dimension sociale de ce service n’était pas un besoin de mon côté.
Quelques jours plus tard, Mapstr ajoute un vilain dark pattern à chaque ouverture de l’application avec l’affichage de 2 modales (écran du milieu et de droite sur l’image) incitant à souscrire à l’abonnement…

L’idée était donc née, je devais trouver une alternative. J’ai d’abord regardé du côté d’Apple Plans mais celui-ci ne permet pas d’importer des données. À ce moment, je me suis dit qu’il serait idéal de trouver une solution auto-hébergeable mais à chaque fois les mises à jour sont pour moi complexes à gérer. Et finalement, j’ai demandé à une IA (Claude) de me générer un site pour sauvegarder des lieux. Après quelques itérations sur le prompt, j’ai pu obtenir un site viable et satisfaisant pour mon usage.
Exporter mes données Mapstr
C’était l’étape la plus simple puisque Mapstr propose une fonctionnalité d’export qui génère un CSV (qui n’inclut pas les coordonnées GPS) et un GeoJSON des lieux enregistrés.
Conversion du GeoJSON en fichiers Markdown
Utilisant déjà Jekyll pour deux projets (Notes fromagères et Bloc-notes), je me suis tourné vers ce générateur de site statique (développé par Tom Preston-Werner, le fondateur de GitHub).
Pour réaliser toutes les conversions qui vont suivre, j’ai utilisé ChatGPT. Afin de conserver les lieux déjà enregistrés, j’ai dû convertir le contenu du GeoJSON en autant de fichiers Markdown qu’il y avait de lieux sauvegardés. J’ai donc, dans un premier temps, reconverti le GeoJSON en CSV pour obtenir la latitude et longitude des adresses. Une fois ce fichier obtenu, j’ai demandé à l’IA de créé un fichier Markdown pour chaque lieu.
J’ai dû faire une repasse sur les fichiers car les tags et différentes données dans le Front Matter n’étaient pas propres. Ça m’a pris un peu de temps mais je voulais partir sur de bonnes bases.
Coup de pinceau
La dernière étape de conception fût d’intégrer mon style CSS au projet pour conserver ma charte graphique et corriger quelques bugs graphiques.
J’ai également demandé à l’IA de changer le thème d’OpenStreetMap et le design des pins mais aussi pour rendre dynamique l’ouverture des adresses dans des applications (Apple Plans ou Google Maps) sur mobile.
Publication du site
Jekyll requiert un build pour chaque ajout de lieu, c’est ce qui le distingue des CMS classiques. Comme pour mon projet de notes, à chaque nouveau commit, Vercel génère et publie le site. J’ai juste créé une redirection DNS pour le publier sous mon nom de domaine.
Conclusion
Je me questionne toujours sur l’utilisation d’une IA mais il faut reconnaitre que cela m’a permis de produire un site web que je ne savais pas faire en un temps record. C’est tout de même un outil très pratique dans ce cas.
J’ai également créé un raccourci iOS pour faciliter la création d’un lieu lorsque je n’ai pas mon ordinateur avec moi.
Des améliorations restent à faire sur ce projet. Par exemple, il faudrait pouvoir sélectionner plusieurs catégories.
Le lien du projet → lieux.timotheejulien.fr
Ressources
Le projet étant open-source, vous pouvez trouver le code sur GitHub.