Fran Aragon

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.

Next.jsTypeScriptSwiftUIKotlinPush Notificationsi18n

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

Next.js App Router
TypeScript
PostgreSQL & Prisma
API Mobile Versionnée
SwiftUI
Kotlin & Jetpack Compose
APNs & Firebase Cloud Messaging
Live Activities & WidgetKit
Données Structurées (Schema.org)
Trilingue : ES · EN · FR

Fonctionnalités de la Plateforme

Match Centre en Direct
Console d’Opérateur de Match
Notifications Push par Thème
Live Activities & Widgets
Actualités & CMS Éditorial
Calendrier, Classement & Effectifs
Abonnement au Calendrier
Pronostics & Vote MVP

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.

Site Web · Accueil
Site Web · Accueil
iOS · Accueil
iOS · Accueil
iOS · Match Centre
iOS · Match Centre
iOS · Widgets d’accueil
iOS · Widgets d’accueil
iOS · Live Activity
iOS · Live Activity

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

91
Performance Mobile
99
Performance Desktop
94
Accessibilité
100
SEO

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
CD Estepona Fans | Étude de cas d’un produit sportif multiplateforme | Fran Aragón