En producción · 2026
Rebote — Gestión de clubes de baloncesto
SaaS multi-club para baloncesto formativo: equipos, convocatorias, asistencia, cuotas, tesorería e inscripciones públicas.
- Rol
- Diseño y desarrollo completo
- Secciones de panel
- 20
- Entidades del modelo
- 13
Pruébalo tú
En vivoQué mirar dentro
- El panel del club: equipos, jugadores, convocatorias y asistencia
- Tesorería: cuotas, pagos y categorías de movimiento
- El portal de familias, que es la misma aplicación con otro rol
- La página pública de inscripción del club
Es un club de mentira con datos de mentira. Trastea lo que quieras: se resiembra.
Problema
Un club de baloncesto formativo se gestiona, casi siempre, con un grupo de WhatsApp por equipo, una hoja de cálculo para las cuotas y la memoria del entrenador para las convocatorias. Funciona hasta que el club crece.
Decisión
Multi-tenant desde el modelo, no desde la interfaz: todo cuelga del identificador de club y el rol de cada persona se define por club mediante una tabla de pertenencias.
Así un mismo usuario puede ser entrenador en un club y padre en otro sin duplicar cuentas. Aislar por consulta permite que un servidor pequeño sirva a varios clubes, pero obliga a que ninguna consulta se escriba sin su ámbito.
Implementación
Temporadas, equipos, jugadores, tutores, eventos, convocatorias, asistencia, cuotas, pagos, documentación y comunicación, sobre trece entidades.
Cada club tiene una página pública con su clasificación y un formulario de inscripción propio. Las familias entran a su propio portal para ver convocatorias, documentos y el estado de las cuotas.
La autenticación va por token de Sanctum, no por sesión con cookie: el frontend es una aplicación aparte y hablar por token evita el enredo de dominios compartidos y CSRF entre orígenes.
Tesorería con cuotas, pagos, categorías de movimiento y conciliación, con integración opcional a la API de datos bancarios de GoCardless.
Despliegue
Tres contenedores sobre Coolify: el frontend de Next.js compilado en modo standalone, el backend de Laravel servido por FrankenPHP y MySQL en una red privada sin salida a internet.
El backend sí tiene dominio público, porque quien llama a la API es el navegador del visitante y no el servidor del frontend.