PARTENARIAT SÉLECTIONNÉ
CD Estepona Fans
Un produit multiplateforme pour la communauté des supporters du CD Estepona : un site public, une application iOS native et un système interne de match qui transmet les événements en direct aux supporters au moment où ils se produisent.
Projet indépendant de supporters. Sans lien avec le CD Estepona et non un service officiel du club.
Vue d’ensemble
CD Estepona Fans est un produit indépendant destiné aux supporters du CD Estepona, club de football espagnol évoluant en Segunda RFEF. Né en 2025 comme site d’actualités, il est devenu un écosystème numérique : une plateforme web trilingue, une application iOS native publiée sur l’App Store, une application Android native en test fermé et un Matchday Control Center interne où des opérateurs enregistrent chaque événement du match en direct.
Mon Rôle
Je porte le produit de bout en bout : vision produit, UX, architecture, backend, développement web, iOS et Android, publications et exploitation au quotidien. Il s’agit d’une initiative indépendante de supporters et non d’une commande du club, ce qui en fait un véritable exercice d’ownership produit : chaque décision, du modèle de données à la publication sur l’App Store, m’appartenait, tout comme sa maintenance.
Le Défi
Les supporters des clubs de divisions inférieures bénéficient rarement de l’expérience numérique que les fans des grands clubs considèrent comme acquise. L’objectif était de leur offrir un lieu unique pour l’actualité, le calendrier, le classement, l’effectif et surtout le suivi des matchs en direct, avec un coût d’exploitation adapté à un projet indépendant.
Cela impliquait de résoudre de vrais problèmes produit : des données de match qui doivent être justes du premier coup car elles déclenchent des notifications push, des corrections qui ne doivent jamais alerter deux fois les supporters, une expérience en direct reposant sur une infrastructure serverless et plusieurs plateformes qui doivent raconter exactement la même histoire en trois langues.
L’Écosystème
Chaque surface a un rôle précis, et toutes partagent un seul backend et un contrat d’API versionné.
En ligne
Site Web
Plateforme Next.js trilingue pour l’actualité, le calendrier, le classement, les effectifs, les galeries et les jeux de supporters.
Disponible sur l’App Store
Application iOS
Application SwiftUI native avec Match Centre en direct, alertes push par thème, widgets d’écran d’accueil et Live Activities.
En test fermé
Application Android
Application native en Kotlin et Jetpack Compose, à parité fonctionnelle avec iOS. Pas encore disponible publiquement.
Interne
Matchday Control Center
Console où un opérateur dédié à chaque match enregistre buts, cartons, remplacements et compositions pendant la rencontre.
Interne
Administration des Contenus
CMS éditorial pour l’actualité, les galeries, les effectifs et les matchs, avec traduction automatique des articles.
Architecture
Un backend unique en Next.js et TypeScript sert le site, l’administration des contenus, le Matchday Control Center et une API mobile versionnée utilisée par les deux applications natives. PostgreSQL avec Prisma porte le modèle de domaine, les notifications push passent par APNs et Firebase Cloud Messaging, et les Live Activities iOS sont mises à jour à distance depuis le serveur. L’architecture privilégie délibérément un petit nombre de composants bien maîtrisés qu’un seul ingénieur peut exploiter de manière fiable.
Points Techniques Clés
Fonctionnalités de la Plateforme
Décisions d’Ingénierie Clés
Des données en direct issues d’un Matchday Control Center
Les données en direct ne proviennent pas d’un fournisseur tiers. Un opérateur affecté à chaque match enregistre chaque but, carton, remplacement et composition dans une console interne. Les minutes sont calculées à partir d’une horloge de match côté serveur au lieu d’être saisies, chaque opérateur ne peut agir que sur les matchs qui lui sont attribués et chaque action est consignée dans un journal d’audit.
Un seul pipeline pour toutes les sources
Les actions des opérateurs sont rejouées dans le même pipeline d’ingestion que celui conçu pour les fournisseurs de données externes. Enregistrer, corriger ou annuler un événement devient une insertion, une mise à jour ou un retrait sur une chronologie canonique unique, et le score est toujours recalculé à partir de celle-ci plutôt que modifié à la main.
Des notifications envoyées une seule fois
Les alertes sont mises en file d’attente avec une clé de déduplication unique et envoyées une fois la requête de l’opérateur terminée, afin qu’un service push lent ne bloque jamais la console. Les corrections historiques sont appliquées de façon idempotente et silencieuse, sans alerter les supporters une seconde fois.
Du temps réel sans infrastructure temps réel
Plutôt que d’exploiter des serveurs de sockets, les applications interrogent un endpoint en direct dont la fréquence est fixée par le serveur selon l’état du match : toutes les 10 secondes pendant le jeu, beaucoup moins souvent le reste du temps. Chaque requête est conditionnelle via ETag : des données inchangées ne coûtent qu’un échange d’en-têtes, pas une réponse complète.
Présent sur l’écran verrouillé
Sur iOS, les Live Activities et les widgets d’écran d’accueil gardent le score visible sans ouvrir l’application, la Live Activity étant mise à jour à distance depuis le serveur à mesure que les événements sont enregistrés.
Natif sur les deux plateformes, un seul contrat
SwiftUI sur iOS et Kotlin avec Jetpack Compose sur Android, construites sur la même API versionnée, les mêmes thèmes de notification et le même catalogue de traductions, avec des suites de tests automatisés sur la plateforme web et dans les deux applications.
L’Expérience
Le site et l’application présentent les mêmes matchs, actualités et effectifs sous la forme adaptée à chaque contexte : navigation complète et visibilité dans les moteurs de recherche sur le web, alertes instantanées et scores lisibles d’un coup d’œil sur le téléphone.





Les images iOS sont les captures publiées de l’application sur l’App Store (fiche en espagnol). L’image du site a été capturée en production en octobre 2026.
Résultats
Le site est en ligne en trois langues, avec une archive éditoriale de 366 articles publiés, et l’application iOS a été publiée sur l’App Store en octobre 2026. Sur le dernier instantané de 30 jours, la plateforme a enregistré plus de 3 000 visites provenant de plus de 1 300 utilisateurs et a affiché une visibilité organique dans la recherche Google. L’application Android est en test fermé sur Google Play et sera ajoutée ici dès qu’elle sera disponible publiquement.
Audience de la plateforme · 30 derniers jours
- Visites
- 3 172
- Utilisateurs Actifs
- 1 361
- Pages Vues
- 5 545
Recherche Google · 10 principales requêtes
- Clics Organiques
- 607
- Impressions
- 8 271
- Position Moyenne
- 3,6
Instantané du tableau de bord d’administration de la plateforme, couvrant environ la période du 20 septembre au 19 octobre 2026. Les données d’usage sont les sessions, utilisateurs actifs et pages vues de Google Analytics 4, limitées aux visiteurs ayant accepté les cookies d’analyse. Les données de recherche proviennent de Google Search Console et portent sur les dix requêtes affichées par le tableau de bord ; les totaux du site peuvent donc être supérieurs, et la position est la moyenne simple de ces requêtes.
Performance web
Scores de laboratoire Lighthouse 12.8 pour la page d’accueil en production : médiane de trois exécutions par profil d’appareil, mesurés le 19 octobre 2026. L’accessibilité correspond au profil mobile.
Prochaines Étapes
Le produit continue d’évoluer. Les prochaines étapes sont la publication de l’application Android et un lien plus étroit entre le site et les applications, afin qu’un match ou un article s’ouvre directement dans l’application lorsqu’elle est installée.
Philosophie Produit
Un produit sportif gagne la confiance le jour du match : le score doit être juste, l’alerte doit arriver une seule fois et l’expérience doit fonctionner sur chaque plateforme utilisée par les supporters.
Construire des produits pour des entreprises ambitieuses.
Je collabore chaque année avec un nombre limité de partenaires afin de concevoir et développer des produits digitaux alliant performance, évolutivité et impact business.
Démarrer une Conversation