Comment j'ai construit un portail patrimonial pour préserver l'islam de Kong
Je suis né à Kong. Cette ville du nord de la Côte d'Ivoire, ancienne cité marchande au carrefour des routes transsahariennes, porte en elle un héritage islamique de plusieurs siècles. Sa Grande Mosquée a été inscrite au patrimoine mondial de l'UNESCO. Ses maîtres coraniques ont formé des générations
Introduction
Je suis né à Kong. Cette ville du nord
de la Côte d'Ivoire, ancienne cité marchande au carrefour des routes
transsahariennes, porte en elle un héritage islamique de plusieurs siècles. Sa
Grande Mosquée a été inscrite au patrimoine mondial de l'UNESCO. Ses maîtres
coraniques ont formé des générations de fidèles à travers toute l'Afrique de
l'Ouest. Son histoire est exceptionnelle.
Et pourtant, pendant longtemps, cette
histoire n'avait quasiment pas d'existence numérique. Les documents dormaient
dans des tiroirs. Les enseignements des maîtres n'étaient accessibles qu'à ceux
qui vivaient à Kong ou dans ses environs. Le risque de perte était réel — non
pas par négligence, mais par absence d'outil.
En février 2025, j'ai commencé à
construire Kong Islamique — un portail patrimonial numérique pour sauvegarder, valoriser et
transmettre le patrimoine islamique de Kong. Voici comment ce projet est né, ce
qu'il contient, et les choix techniques qui l'ont façonné.
Le
problème à résoudre
Pas un blog. Un acte de préservation.
Dès le départ, la question n'était pas
"quel CMS utiliser ?" mais "quel type de plateforme ce
patrimoine mérite-t-il ?" La réponse n'était pas un WordPress avec un
thème islamique. Le patrimoine de Kong nécessitait une architecture dédiée,
pensée pour quatre types de contenu très différents : des articles éditoriaux, des archives patrimoniales avec métadonnées
historiques, des podcasts d'enseignements oraux, et des cours rattachés à des maîtres islamiques identifiés.
Ces quatre entités ne fonctionnent pas
de la même façon. Une archive a besoin de champs comme "période
historique", "lieu de conservation", "état de
conservation". Un enseignement doit obligatoirement être lié à un profil
de maître. Un podcast doit pouvoir être lu hors-ligne, sans téléchargement
possible. Un article suit un workflow de validation éditorial. Regrouper tout
ça dans une table `content` générique aurait été une erreur de conception.
J'ai donc conçu quatre entités Doctrine
séparées, chacune avec ses propres champs, son propre formulaire backoffice et
ses propres règles d'affichage public. C'est plus de travail à l'écriture, mais
une maintenance infiniment plus claire sur la durée.
Le défi
de la protection du patrimoine
Consulter sans copier ni télécharger.
Un des enjeux centraux de ce projet
était la protection des contenus. Des manuscrits anciens, des enregistrements
d'enseignements, des documents patrimoniaux numérisés — ce sont des ressources
rares que la communauté de Kong partage avec le monde, mais qu'elle ne souhaite
pas voir circuler librement sans contrôle.
La solution que j'ai mise en place opère
à deux niveaux. Côté interface : sélection de texte désactivée, clic droit bloqué, glisser-déposer
d'images impossible. Côté serveur : les médias sensibles (archives, enregistrements) ne sont jamais
exposés en URL directe. Ils transitent par un contrôleur dédié — MediaStreamController — qui gère le streaming par plages
HTTP, le cache navigateur et la détection MIME, sans jamais révéler le chemin
réel du fichier.
Le viewer PDF (construit avec PDF.js) ne
propose ni bouton de téléchargement, ni outil d'annotation. Le lecteur
audio/vidéo maison ne laisse aucun accès direct à la source.
La PWA :
lire Kong hors-ligne
Parce que la connexion n'est pas toujours au
rendez-vous.
Kong est une ville du nord de la Côte
d'Ivoire. La connectivité mobile y est variable. J'ai voulu que le portail soit
utilisable même sans connexion stable — et j'ai donc implémenté une Progressive
Web App complète.
Le service worker gère plusieurs
stratégies de cache : network-first pour les pages HTML (fraîches en ligne, repli cache ensuite), stale-while-revalidate pour les CSS/JS/images, et un
cache conscient des requêtes HTTP Range pour les médias. Concrètement, si un utilisateur écoute un
enseignement en ligne, il peut continuer à l'écouter hors-ligne lors de sa
prochaine session — le service worker intercepte les requêtes `Range` et répond
correctement depuis le cache.
Le portail est installable comme une
application native sur Android, iOS et desktop. Une invite d'installation
personnalisée s'affiche aux visiteurs réguliers, masquable 14 jours si ignorée.
Ce que
ce projet m'a appris
Quand la technique sert une cause.
Kong Islamique est probablement le
projet le plus personnel que j'ai construit. Il ne résout pas un problème
opérationnel de radio comme ConductR, ni un problème de coût comme WaveBridge.
Il répond à une question plus profonde : comment mettre la technologie au
service de la mémoire collective d'une communauté ?
Techniquement, il m'a poussé à explorer
des domaines que je n'avais pas autant travaillés : la gestion du streaming
HTTP Range, la construction d'un service worker robuste pour les médias,
l'architecture multilingue avec RTL, la modélisation d'un workflow éditorial à
plusieurs niveaux de validation.
Mais au-delà du code, ce projet m'a
rappelé que les outils numériques les plus utiles sont ceux qui servent des
personnes réelles, dans des contextes réels. Kong Islamique n'est pas fait pour
impressionner des recruteurs. Il est fait pour que les enfants de Kong qui
vivent à Abidjan, à Paris ou à Dakar puissent accéder à l'enseignement de leurs
maîtres, lire les archives de leur ville, et rester connectés à une tradition
qui les précède de plusieurs siècles.
« La mémoire d'un peuple ne disparaît pas quand ses
aînés s'en vont — elle disparaît quand personne n'a pris le soin de la
préserver. Kong Islamique est une réponse technique à cette responsabilité
historique. »