← Back
Les Santes
app Active

Ajuntament de Mataró

Les Santes

Apr 18, 2026 → En progreso

Logo de Les Santes

Les Santes

El mayor festival de Mataró, en tu bolsillo - construido de principio a fin por una sola persona

Cada verano, Mataró (Barcelona) celebra Les Santes - seis días de conciertos, correfocs, desfiles de figuras gigantes y eventos al aire libre que reúnen a decenas de miles de asistentes por toda la ciudad.

¿La única herramienta oficial? Un PDF impreso y una web estática sin datos en tiempo real. La gente se quedaba adivinando horarios, dónde estaban los desfiles y si algo se había cancelado.

Así que construí todo el stack yo solo - app móvil, web de marketing y CMS de administración - en solitario, desde cero, en público.

Landing page de Les Santes
3plataformas entregadas
Solocreado y mantenido
MITcódigo abierto
134años de carteles archivados

Por qué existe este proyecto

Llevo más de 20 años asistiendo a Les Santes. En cada edición veía la misma escena repetirse: personas con los programas impresos arrugados, preguntándose mutuamente “¿dónde están los gigantes ahora?” o “¿a qué hora empieza el correfoc?”

El problema es genuinamente difícil en el momento: los desfiles se mueven, los eventos empiezan tarde, la señal es pésima en las calles llenas de gente y la web oficial no está pensada para uso en tiempo real.

Mataró merece mejores herramientas. Así que las construí - un proyecto solidario en solitario, sin cliente, sin presupuesto y sin equipo. Solo un problema que merecía resolverse y un stack que merecía aprenderse.


Puntos técnicos destacados

Posición del desfile en vivo - sin GPSCada desfile tiene una ruta GeoJSON planificada y una hora de inicio. La app interpola su posición a lo largo de esa ruta cada segundo, en el cliente. Sin hardware, sin peticiones al servidor - solo geometría y tiempo transcurrido.
Funciona sin conexión - los recintos festivos matan la señalTodos los datos se cachean en la primera carga con una marca de tiempo. Si abres la app sin conexión, sigues teniendo el programa completo - con una pequeña nota que indica cuánto tiempo llevan los datos almacenados. Sin spinners, sin pantallas vacías.
Cero cuentas, cero datos recogidosSin login, sin sesiones, sin tokens. Esto simplificó todo el backend y facilitó la revisión en la App Store - simplemente no había nada que revisar en materia de gestión de datos.
Cancelaciones instantáneas vía Supabase RealtimeCuando el organizador cancela un evento, todas las instancias de la app conectadas lo reciben de inmediato mediante difusión en tiempo real. Los usuarios con notificaciones activadas reciben un push con el motivo. Sin polling.
130 años de carteles en 146 KB en totalEl archivo completo de carteles (1892-presente) recodificado a AVIF. Lo que habrían sido 5,2 MB de PNGs caben en 146 KB - un 97% más pequeño, la misma calidad visual.
MapLibre en lugar de Google o Apple MapsMapLibre GL JS en un WebView aislado con teselas de MapTiler. Sin rastreo de terceros, sin configuración de SDK nativo, control total sobre el estilo. Mantiene la política de privacidad en un solo párrafo.
Mapa en vivo con seguimiento en tiempo real de desfiles

La app

La app móvil (React Native + Expo) está organizada en torno a una pregunta: ¿qué está pasando ahora mismo?

Ara (Ahora)

Abre la app y ve de inmediato qué está en directo: una tarjeta destacada con el evento actual y una tira horizontal con los próximos. Sin pantalla de login, sin onboarding, sin configuración - solo el festival.

Vista Ara de la app

Mapa (Mapa interactivo)

Los eventos fijos aparecen como marcadores. Los desfiles en movimiento muestran su posición estimada en tiempo real como una polilínea de ruta animada, recalculada cada segundo interpolando el tiempo transcurrido a lo largo de la ruta GeoJSON planificada. Parece en vivo porque las matemáticas corren en vivo.

Mapa con rutas de eventos en directo

Agenda (Programa completo)

El calendario completo, filtrable por día, categoría, tipo de evento o distancia desde la ubicación del usuario. Un sistema de favoritos permite a los usuarios guardar eventos y recibir notificaciones antes de que empiecen.

Vista completa de la agendaFiltro de favoritos

Recursos (Archivo)

Un archivo desplazable de todos los carteles oficiales del festival desde 1892, más un lightbox deslizable de las postales de los Gegants - cada uno codificado en AVIF para una carga casi instantánea.

Archivo de cartelesLightbox de postales de GegantsPestaña de recursos

Decisiones clave de diseño

Sin login. Sin cuentas. Sin datos recogidos.Los asistentes al festival quieren saber qué hay, no rellenar formularios. La app es 100% anónima - nunca se transmiten ni almacenan datos personales. Esto también facilitó la aprobación en la App Store y Play Store, ya que no había nada que revisar en materia de gestión de datos.
Offline-first, no offline-tolerante.Los recintos festivos tienen una señal pésima. Todos los datos de eventos se cachean localmente con una marca de tiempo en la primera carga, de modo que la experiencia completa de la app funciona sin conexión a internet. Un banner no bloqueante muestra la antigüedad de la caché. Sin estados parciales, sin marcadores de posición.
El catalán como idioma principal.Les Santes es un festival cultural catalán. La app habla catalán en primer lugar - no como localización, sino como idioma predeterminado. El inglés y el español son alternativas. Esta fue la primera decisión de producto tomada, no la última.
AVIF en todas partes.Todos los medios - capturas de la app, archivo de carteles, postales, imágenes de la landing - fueron recodificados a AVIF. La colección de carteles de más de 130 años pasó de 5,2 MB de PNGs a ~146 KB. La misma calidad visual, menos de 30 KB por imagen de media.
MapLibre en un WebView en lugar de SDKs nativos de mapas.Usar Google Maps o Apple Maps habría introducido políticas de privacidad, sobrecarga de configuración del SDK y posibles fricciones en la revisión. MapLibre GL JS se ejecuta aislado en un WebView con teselas de MapTiler - control total sobre el estilo y los datos, sin rastreo de terceros y una política de privacidad de un solo párrafo.

La landing page

Un sitio con Next.js 15 App Router que convierte visitantes en descargas de la app y funciona también como sistema de gestión de contenidos para el organizador del festival. Optimizado para Core Web Vitals, completamente tipado y estructurado para SEO con el objetivo de competir con el dominio oficial de la ciudad en consultas de alta intención.

Sección de pantallas de la app en la landing pageMarquesina de carteles en la landing pagePágina 404 personalizada

El panel de administración

Un back-office protegido por contraseña integrado en el sitio de la landing. El organizador del festival puede crear, editar y cancelar eventos sin tocar código. Las cancelaciones requieren un motivo, que se difunde instantáneamente a todas las instancias de la app conectadas mediante Supabase Realtime y se entrega como notificación push a través de Expo Notifications.

Panel de administración - lista de eventos

La creación de eventos gestiona tanto eventos de ubicación fija como desfiles en movimiento. Las rutas de los desfiles se dibujan en geojson.io y se suben como GeoJSON - la app las usa para la interpolación de posición en vivo en el cliente durante el festival.

Panel de administración - formulario de edición de eventos

Tecnología de un vistazo

CapaStack
App móvilReact Native, Expo SDK 54, Expo Router
Estado y cachéZustand, AsyncStorage
MapaMapLibre GL JS en un WebView, teselas MapTiler
Notificaciones pushExpo Notifications, Supabase Realtime
Landing y CMSNext.js 15, Tailwind CSS v4, shadcn/ui
BackendSupabase (PostgreSQL, Auth, Realtime)
SEOJSON-LD @graph, FAQPage, Festival subEvent[], lista blanca de crawlers de IA
ImágenesAVIF en todas partes (97% de reducción de tamaño)
i18nCatalán como idioma principal, inglés como alternativa

Estado

El festival se celebra del 24 al 29 de julio de 2026.

La app está disponible en Google Play para dispositivos Android. Actualmente trabajando para obtener el reconocimiento oficial del Ajuntament de Mataró y un lanzamiento en iOS.

El código fuente completo es de código abierto bajo licencia MIT.

Enlaces

Proyectos similares

Les Santes

© 2026 Pol Gubau Amores