← Blog
Actualite 16/08/2026 5 min de lecture 73 vues

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

Comment j'ai construit un portail patrimonial pour préserver l'islam de Kong

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. »

Patrimoine Misquée de Kong Missiri bah Kong · Côte d'Ivoire