← Proyectos

Ñuñoa Runners

De sitio informativo a herramienta de gestión

Sitio público y plataforma interna para un team de running con cerca de cien integrantes activos, organizados en dos turnos. Cada corredor mantiene su propia ficha, mientras entrenadores y representantes validan nuevas incorporaciones y coordinan inscripciones mediante permisos definidos por rol.

Ver el sitio

Un sitio para organizar un equipo en crecimiento

El proyecto reúne la información y las herramientas que los corredores utilizan cada semana.

La primera versión atendía a cerca de treinta corredores y reunía recursos públicos para entrenar y competir con un registro interno del equipo. Cuando la base superó los cien integrantes, el sitio dejó de ser solo un punto de consulta y pasó a sostener parte de la organización.

La información debía mantenerse vigente aunque cambiaran corredores y responsables. Por eso el sitio evolucionó hacia una plataforma interna: cada corredor mantiene su ficha y los responsables coordinan las incorporaciones.

  • Next.js
  • TypeScript
  • Supabase
  • Resend
  • Vercel
Integrantes de Ñuñoa Runners posan juntos sobre una pista atlética

De un acceso compartido a una cuenta por corredor

Cada etapa resolvió un límite de la anterior: primero reunir la información, luego distribuir su mantención y finalmente automatizar tareas recurrentes.

Sitio inicial Herramientas públicas y registro interno
Plataforma interna Una cuenta y una ficha por corredor
Operación Inscripciones, correo y calendario

Herramientas para correr, gestión para el equipo

El proyecto combina un sitio abierto de consulta frecuente con una plataforma interna que distribuye la actualización de la información.

Sitio público

Reúne una guía de pistas atléticas, el calendario de carreras y una calculadora de ritmo para distancias desde cinco kilómetros hasta la maratón. También presenta al equipo y explica cómo incorporarse. Todos estos recursos pueden utilizarse sin crear una cuenta.

Mockup del sitio público de Ñuñoa Runners en sus versiones móvil y de escritorio

Plataforma interna

Organiza a cerca de cien corredores en dos turnos. Cada integrante accede con su propia cuenta, completa su ficha y actualiza su información cuando cambia, evitando que el registro dependa de una sola persona.

Las nuevas cuentas permanecen pendientes hasta que un entrenador o representante del turno valida el ingreso. Así, el equipo combina autonomía individual con control sobre las incorporaciones.

Mockup de la plataforma interna de Ñuñoa Runners con perfiles ficticios en sus versiones de escritorio y móvil

La seguridad se garantiza desde el backend

Pasar a cuentas individuales resolvió la identificación, pero abrió una segunda pregunta: qué puede consultar y modificar cada persona. Con dos turnos y distintos niveles de responsabilidad, ocultar acciones en la interfaz no era suficiente. Los permisos debían formar parte del modelo de datos.

La plataforma traduce la estructura del equipo en cinco roles. Cada corredor administra su propia ficha, mientras representantes y entrenadores validan incorporaciones y supervisan los registros dentro de su ámbito. A medida que aumenta la responsabilidad, el acceso se amplía de forma controlada sin permitir que un rol actúe fuera de su nivel.

Las reglas se aplican directamente en Postgres mediante Row Level Security. Así, cada consulta respeta las mismas restricciones sin importar desde qué pantalla o proceso se origine. La interfaz y el servidor validan el recorrido, pero la base de datos conserva la decisión final: cualquier cambio fuera del alcance asignado se rechaza antes de modificar la información.

Diagrama conceptual de cinco roles que pasan por Row Level Security antes de acceder a la información almacenada en Postgres

Cada corredor tiene el control de sus datos

Cada integrante accede mediante una cuenta individual y administra su propia información. Puede actualizarla cuando lo necesite, definir una clave de acceso almacenada mediante un hash no reversible y elegir su foto de perfil, sin depender de otra persona para mantener su ficha al día.

La ficha y la fotografía no se publican en el sitio abierto. Solo pueden verlas los integrantes activos del mismo turno dentro de la plataforma privada. Así, el registro funciona como una herramienta de reconocimiento y coordinación sin exponer la información fuera de su grupo.

El contacto de emergencia tiene un alcance todavía más limitado: nunca es visible para los compañeros y solo las personas responsables del turno pueden consultarlo cuando la situación lo requiere. Los permisos por rol permiten ajustar el acceso según el propósito de cada dato.

Interfaz conceptual de edición de perfil y visibilidad diferenciada para compañeros y responsables del turno, con identidad ficticia

Nuevas funciones para crear comunidad

El sitio comenzó como un espacio de consulta, pero el equipo también necesitaba participar en actividades compartidas. Las inscripciones a eventos se integraron en la misma experiencia, incluyendo la transferencia y el envío del comprobante. Cada persona completa el proceso sin abandonar el sitio, mientras los organizadores reciben los registros en la planilla que ya utilizan.

El correo permite mantener una comunicación directa con los integrantes. Los mensajes salen desde un dominio verificado que representa al equipo y se realizan mediante envíos individuales por lotes, de modo que cada destinatario recibe su propio correo sin ver las direcciones de los demás.

El calendario reúne las próximas carreras y deja de mostrar automáticamente las fechas que ya pasaron, manteniendo visibles los objetivos que vienen. Inscripciones, correo y calendario amplían el proyecto más allá del registro de corredores: facilitan la participación, la coordinación y la continuidad del equipo.

Composición de pantallas móviles flotantes con las secciones de carreras, evento público, calculadora de pace y pistas atléticas de Ñuñoa Runners

Una arquitectura diseñada para durar y crecer

El proyecto no se construyó como una colección de funciones independientes. El sitio público y la operación privada comparten una arquitectura coherente que protege la información, reduce la carga de mantenimiento y permite incorporar nuevas capacidades sin reconstruir la plataforma. Cada decisión técnica fortalece una parte concreta del sistema.

TecnologíaDecisión arquitectónica
Next.js, React y TypeScript Unifican el sitio público y la plataforma interna en una sola aplicación. El procesamiento en el servidor separa ambos contextos y TypeScript convierte roles, estados y reglas del negocio en contratos verificables.
Supabase: Postgres, Auth, Row Level Security y Storage Centraliza datos, identidades, permisos y fotografías. Postgres aporta integridad; Row Level Security protege la información en su origen; Auth y Storage completan el sistema sin dispersar la seguridad entre servicios.
Resend con dominio verificado Entrega correos desde el dominio del equipo y realiza envíos individuales por lotes. La comunicación mantiene una identidad institucional sin exponer las direcciones de los destinatarios.
Apps Script y Google Sheets Lleva las inscripciones estacionales a la herramienta que los organizadores ya saben revisar y exportar. Se integra con la operación existente sin imponer otro panel administrativo.
CSS propio Construye una identidad visual propia y un responsive controlado con precisión, sin añadir un framework de componentes ni su carga de mantenimiento.
Vercel Convierte cada cambio del repositorio en un despliegue trazable y repetible. Su integración con Next.js evita operar infraestructura propia.

Una plataforma que coordina a un team completo

Alcance

Más de 100 corredores

Dos turnos comparten un mismo sistema, con información organizada y actualizable aunque la composición del equipo cambie.

Permisos

Cinco niveles de responsabilidad

Cada rol cuenta con un alcance definido para consultar información, mantener registros y validar incorporaciones.

Eventos públicos

Inscripciones dentro del sitio

Cada convocatoria puede incorporar su propio formulario y entregar los registros a los organizadores sin desviar al participante hacia otra plataforma.

Autonomía

Gestión compartida

Cada corredor mantiene su información, los responsables coordinan las incorporaciones y el calendario conserva visibles las próximas carreras.

¿Creamos una plataforma para tu comunidad?

Conversemos sobre cómo transformar la operación de tu equipo en una plataforma segura y preparada para crecer.