Fran Aragon

PARTNERSHIP SELECCIONADA

CD Estepona Fans

Un producto multiplataforma para la comunidad de aficionados del CD Estepona: una web pública, una app nativa para iOS y un sistema interno de partido que lleva los eventos en directo a la afición en el momento en que ocurren.

Next.jsTypeScriptSwiftUIKotlinPush Notificationsi18n

Proyecto independiente de aficionados. Sin vinculación con el CD Estepona y no es un servicio oficial del club.

Visión General

CD Estepona Fans es un producto independiente para los aficionados del CD Estepona, club de fútbol que compite en Segunda RFEF. Lo que empezó en 2025 como una web de noticias se ha convertido en un ecosistema digital: una plataforma web trilingüe, una app nativa para iOS publicada en el App Store, una app nativa para Android en pruebas cerradas y un Matchday Control Center interno donde los operadores registran cada evento del partido en directo.

Mi Rol

Soy responsable del producto de principio a fin: dirección de producto, UX, arquitectura, backend, desarrollo web, iOS y Android, publicaciones y operación diaria. Es una iniciativa independiente de aficionados y no un encargo del club, lo que la convierte en un ejercicio real de ownership de producto: cada decisión, del modelo de datos a la publicación en el App Store, ha sido mía, igual que su mantenimiento.

El desafío

Los aficionados de clubes de categorías inferiores rara vez disfrutan de la experiencia digital que los seguidores de los grandes equipos dan por hecha. El objetivo era ofrecerles un único lugar para noticias, calendario, clasificación, plantilla y, sobre todo, el seguimiento de los partidos en directo, con un coste operativo proporcionado a un proyecto independiente.

Eso implicaba resolver problemas reales de producto: datos de partido que deben ser correctos a la primera porque disparan notificaciones push, correcciones que nunca deben avisar dos veces a la afición, una experiencia en directo sobre infraestructura serverless y varias plataformas que tienen que contar exactamente la misma historia en tres idiomas.

El Ecosistema

Cada superficie tiene una función clara, y todas comparten un único backend y un contrato de API versionado.

En producción

Web

Plataforma Next.js trilingüe con noticias, calendario, clasificación, plantillas, galerías y juegos para la afición.

Disponible en el App Store

App iOS

App nativa en SwiftUI con Match Centre en directo, avisos push por temas, widgets de pantalla de inicio y Live Activities.

En pruebas cerradas

App Android

App nativa en Kotlin y Jetpack Compose con paridad funcional respecto a iOS. Aún no está disponible públicamente.

Interno

Matchday Control Center

Consola de operador donde un operador asignado a cada partido registra goles, tarjetas, cambios y alineaciones durante el encuentro.

Interno

Panel de Contenidos

CMS editorial para noticias, galerías, plantillas y partidos, con traducción automática de artículos.

Arquitectura

Un único backend en Next.js y TypeScript da servicio a la web, al panel de contenidos, al Matchday Control Center y a una API móvil versionada que consumen las dos apps nativas. PostgreSQL con Prisma alberga el modelo de dominio, las notificaciones push se entregan mediante APNs y Firebase Cloud Messaging, y las Live Activities de iOS se actualizan de forma remota desde el servidor. La arquitectura prioriza a propósito pocas piezas, bien conocidas, que un solo ingeniero puede operar con fiabilidad.

Aspectos técnicos destacados

Next.js App Router
TypeScript
PostgreSQL y Prisma
API Móvil Versionada
SwiftUI
Kotlin y Jetpack Compose
APNs y Firebase Cloud Messaging
Live Activities y WidgetKit
Datos Estructurados (Schema.org)
Trilingüe: ES · EN · FR

Capacidades de la Plataforma

Match Centre en Directo
Consola de Operador de Partido
Notificaciones Push por Temas
Live Activities y Widgets
Noticias y CMS Editorial
Calendario, Clasificación y Plantillas
Suscripción al Calendario
Quiniela y Votación MVP

Decisiones de ingeniería clave

Datos en directo desde un Matchday Control Center

Los datos en directo no proceden de un proveedor externo. Un operador asignado a cada partido registra cada gol, tarjeta, cambio y alineación en una consola interna. Los minutos se calculan a partir de un reloj de partido en el servidor en lugar de teclearse, cada operador solo puede actuar sobre los partidos que tiene asignados y cada acción queda registrada en un log de auditoría.

Un único pipeline para todas las fuentes

Las acciones del operador se reproducen a través del mismo pipeline de ingesta creado para proveedores de datos externos. Registrar, corregir o anular un evento se convierte en una inserción, una actualización o una retractación sobre una única cronología canónica, y el marcador se recalcula siempre a partir de ella en lugar de editarse a mano.

Notificaciones que se envían exactamente una vez

Los avisos se encolan con una clave de deduplicación única y se envían cuando la petición del operador ya ha terminado, de modo que un servicio push lento nunca bloquea la consola. Las correcciones históricas se aplican de forma idempotente y silenciosa, sin volver a avisar a la afición.

Tiempo real sin infraestructura de tiempo real

En lugar de mantener servidores de sockets, las apps consultan un endpoint en directo cuya frecuencia fija el servidor según el estado del partido: cada 10 segundos durante el juego y mucho menos el resto del tiempo. Cada petición es condicional mediante ETag, así que los datos sin cambios cuestan un intercambio de cabeceras y no una respuesta completa.

Presente en la pantalla de bloqueo

En iOS, las Live Activities y los widgets de la pantalla de inicio mantienen el marcador visible sin abrir la app, y la Live Activity se actualiza de forma remota desde el servidor a medida que se registran los eventos.

Nativo en ambas plataformas, un solo contrato

SwiftUI en iOS y Kotlin con Jetpack Compose en Android, desarrolladas sobre la misma API versionada, los mismos temas de notificación y el mismo catálogo de traducciones, con suites de tests automatizados en la plataforma web y en ambas apps.

La Experiencia

La web y la app presentan los mismos partidos, noticias y plantilla en la forma que necesita cada contexto: navegación completa y visibilidad en buscadores en la web, avisos inmediatos y marcadores de un vistazo en el móvil.

Web · Inicio
Web · Inicio
iOS · Inicio
iOS · Inicio
iOS · Match Centre
iOS · Match Centre
iOS · Widgets de inicio
iOS · Widgets de inicio
iOS · Live Activity
iOS · Live Activity

Las imágenes de iOS son las capturas publicadas de la app en el App Store (ficha en español). La imagen de la web se capturó en producción en octubre de 2026.

Resultados

La web está en producción en tres idiomas, con un archivo editorial de 366 noticias publicadas, y la app de iOS se publicó en el App Store en octubre de 2026. En la última instantánea de 30 días, la plataforma registró más de 3000 visitas de más de 1300 usuarios y mostró visibilidad orgánica en la Búsqueda de Google. La app de Android está en pruebas cerradas en Google Play y se añadirá aquí cuando esté disponible públicamente.

Alcance de la plataforma · Últimos 30 días

Visitas
3172
Usuarios Activos
1361
Páginas Vistas
5545

Búsqueda de Google · 10 consultas principales

Clics Orgánicos
607
Impresiones
8271
Posición Media
3,6

Instantánea del panel de administración de la plataforma, correspondiente aproximadamente al periodo del 20 de septiembre al 19 de octubre de 2026. Los datos de uso son sesiones, usuarios activos y páginas vistas de Google Analytics 4, y solo cuentan a quienes aceptaron las cookies de analítica. Los datos de búsqueda proceden de Google Search Console y abarcan las diez consultas que muestra el panel, por lo que los totales del sitio pueden ser mayores; la posición es la media simple de esas consultas.

Rendimiento web

91
Rendimiento Móvil
99
Rendimiento Escritorio
94
Accesibilidad
100
SEO

Puntuaciones de laboratorio de Lighthouse 12.8 para la página de inicio en producción: mediana de tres ejecuciones por perfil de dispositivo, medidas el 19 de octubre de 2026. La accesibilidad corresponde al perfil móvil.

Próximos Pasos

El producto sigue evolucionando. Los próximos hitos son la publicación de la app de Android y una conexión más estrecha entre la web y las apps, para que un partido o un artículo se abra directamente en la app cuando esté instalada.

Filosofía de Producto

Un producto deportivo se gana la confianza en el día de partido: el marcador tiene que ser correcto, el aviso tiene que llegar una sola vez y la experiencia tiene que funcionar en cada plataforma que usa la afición.

Construyendo productos para empresas ambiciosas.

Colaboro con un número limitado de partners cada año para diseñar y desarrollar productos digitales que combinan rendimiento, escalabilidad e impacto de negocio.

Iniciar conversación
CD Estepona Fans | Caso de estudio de producto deportivo multiplataforma | Fran Aragón