App para jugadores de Fortnite centrada en la tienda del juego y su dinámica de rotación diaria.
El problema no es ver la tienda — es no perderte lo que te interesa.
La tienda cambia a diario, los ítems rotan sin patrón claro y no existe una forma eficiente de seguirlos, descubrirlos o saber cuándo volverán.
Forniteando resuelve esto centralizando la información del ecosistema: tienda del día con notificaciones en tiempo real, histórico completo de ítems y seguimiento con alertas cuando reaparecen.
Además, incorpora una capa de descubrimiento social — interacción entre usuarios y un feed de emotes en vertical para exploración rápida.
No es solo consulta: es una capa de descubrimiento, seguimiento y engagement sobre la tienda.
Retos técnicos resueltos
- Scraping resiliente ante cambios de estructura en fortnite.com — manejo de errores, reintentos y fallbacks
- Cache multi-capa (edge + memoria) para contenido pesado de vídeo con baja latencia
- Serving eficiente de media con Cloudflare R2 y URLs firmadas con TTL corto para reproducción segura
- Automatización compleja de ingesta con GitHub Actions como workers periódicos
- Pool HTTP persistente y min-instances=1 en Cloud Run para eliminar cold start
App móvil (Flutter)
- Desarrollo completo en Flutter para iOS y Android
- Reproductor de vídeo de emotes con interfaz fluida
- Sistema de notificaciones push para novedades diarias
- Funcionalidades sociales: reacciones y comentarios por emote
- Disponible en Google Play y App Store
Pipeline ETL (Worker)
- Extracción de emotes desde fortnite.com (scraping de item shop oficial)
- Procesamiento y almacenamiento de assets de vídeo en Cloudflare R2
- Enriquecimiento de metadatos desde fortnite-api.com
- Automatización con GitHub Actions (workers periódicos)
- Manejo de errores, reintentos y observabilidad
Backend (FastAPI en GCP Cloud Run)
- API REST con FastAPI desplegada en GCP Cloud Run (europe-west1)
- Base de datos edge con Turso (LibSQL/Edge) para baja latencia
- Autenticación por API key con rate limiting y cuota diaria
- URLs firmadas de R2 con TTL corto para reproducción segura
- Cache LRU en memoria + Redis opcional para rutas calientes
- Pool HTTP persistente y min-instances=1 para evitar cold start
- Endpoints: emotes, búsqueda, social, notificaciones, dispositivos