Saltar al contenido
KH, Kenny Horna, inicioEN / ES: Read in English
Menú
Todos los posts

Publicado 19 oct. 2026

Armé una app de gym para no dejar de ir

Mi problema con el gym nunca fue el plan, sino la constancia y tener a alguien que me pida cuentas. Así que armé Spotter, una app chiquita para no dejar de ir.

Mi amigo Andrea entrena como enseña Jeff Nippard: pocos ejercicios, bien hechos, con evidencia detrás en vez de corazonadas. Lleva ya unos años así y se le nota. Yo probé lo mismo más de una vez. Funciona increíble, por unas dos semanas.

El plan nunca fue mi problema. Ir, sí. Así que esta vez no me compré otra libreta. Armé una app.

Imagen principal de Spotter: el logo de una pesa rusa guiñando el ojo, la frase 'A pocket gym coach for beginners' y tres pantallas de celular con la vista Today, la tarjeta de un Hack Squat y un temporizador de descanso con un récord personal nuevo

El plan nunca fue el problema

Cada vez que lo dejé fue igual. Abría las notas del celular en el gym, no me acordaba de cuánto había levantado la semana anterior, me paraba frente a una máquina sin saber si era la correcta y se me iban diez minutos averiguándolo. Fallaba una semana, sentía que ya todo estaba roto y lo dejaba.

Ram, otro amigo, también quería empezar: tres veces por semana, antes de la chamba, en gyms distintos y con casi cero vocabulario de gym entre los dos. Las apps grandes como Hevy o Strong están bien, pero asumen que ya sabes lo que haces. Nosotros no. Necesitábamos algo que te diga qué hacer ahora, en este gym, con este peso, y que después no estorbe.

Un spotter de bolsillo

Spotter es un coach de gym de bolsillo para un grupo chico. Está inspirado en el estilo minimalista y basado en evidencia que sigue Andrea, sabe cuánto levantaste la última vez y arma cada sesión para que entre en unos 45 minutos. La abres y te dice qué sigue.

La pantalla Today de Spotter: sesión 10 de 36, mañana a las 07:30 en el gym Office, 7 ejercicios en unos 43 minutos con Ana, un botón Start, una tarjeta de confirmación donde Ana ya dijo que va y una racha de 3 semanas seguidas

En plena sesión, registrar una serie se hace con un pulgar: peso, repeticiones y cuatro botones para decir qué tan dura estuvo. Con eso la app calcula el peso de la semana siguiente, y lo baja cuando una serie no salió. El temporizador de descanso mantiene la pantalla prendida, y cuando le ganas a tu propio registro te lo celebra un poquito:

Spotter en modo oscuro durante un descanso: un temporizador en 2:42 de 3:00, una tarjeta dorada que anuncia un récord personal nuevo en el Hack Squat con 4 × 75 kg y la serie back-off a continuación

También conoce tu gym sin que tengas que cargarlo a mano. Cuando llegas a una máquina, puedes tomarle una foto y un modelo de visión chiquito responde una pregunta muy concreta: ¿es la máquina que me toca, uno de los dos reemplazos que ya tiene nombrados o es otra cosa? Cuesta unos 0.0004 dólares por foto. Yo igual prefiero tocar “Sí, la encontré”, que ahora la app permite, pero está ahí para cuando tengo enfrente algo que parece sacado de la Inquisición.

La constancia pesa más que los kilos

Lo que más me importa es el grupo. Puedes entrenar con tus amigos en persona o a distancia, cada uno a su hora, y aun así ver quién fue. Hay un feed, aplausos y uno que otro empujoncito.

El feed del grupo Office en Spotter: tarjetas de Kenny, Ana y Leo terminando una sesión Upper en 46 minutos con récords personales, y botones Cheer debajo de las que todavía no tienen aplausos

De ahí salieron unas cuantas reglas:

  • El tablero nunca muestra kilos. Compara quién fue, no quién levanta más. No lo digo para protegerme (bueno, un poco).
  • La racha perdona una semana perdida. Una mala semana era justo lo que antes me hacía tirar la toalla.
  • Nada de notificaciones con culpa. Si desapareces un tiempo, la app te recibe de vuelta. Nunca te manda un “te extrañamos”.

La vida también mueve sesiones. Cambiar el día o la hora toma dos toques, el resto de la semana se queda donde estaba y tu grupo ve que te moviste:

La hoja para cambiar de día en Spotter, para una sesión Full body del martes 20 de octubre a las 07:30: un calendario de dos semanas con el miércoles 21 elegido, opciones de hora, un aviso de que la sesión Upper se queda el jueves y Ana ve el cambio, y un botón para moverla al miércoles

Quién la construyó de verdad

El código no lo escribí yo. Lo interesante es que tampoco lo escribió el agente a cargo.

Usé Claude Code como lead developer. Planificó el trabajo, escribió un brief para cada parte, le pasó cada una a un agente especialista, tomó las decisiones de producto que no necesitaban pasar por mí y revisó lo que volvía. El plan vivía en un documento, más un scratchpad y una lista de pendientes en Solo. Cada carril tenía su archivo de brief con las rutas que le tocaban, qué entregar, qué tests escribir y dónde reportar.

Los carriles corrían en paralelo, cada uno en su propio worktree de git, y los workers no podían tocar git para nada. Un agente integrador aparte aplicaba cada patch, resolvía conflictos, corría todos los chequeos y hacía el commit. El modelo grande, el caro, se encargó de lo difícil, como el motor de progresión y las reviews, y uno más barato se llevó lo mecánico, como pasadas de textos y arreglos chicos. Nadie contrata a un senior para cambiarle el nombre a los botones.

Fue por olas: primero la base, después el producto en sí, después las funciones de fondo (reconocer máquinas, la progresión, el tablero del grupo, los recordatorios), luego varias rondas de reviews y arreglos, y al final producción. Una de esas rondas corrió de noche, sin mí. Unos timers despertaban a los agentes cuando chocaban con un rate limit o un error de red, y para la mañana el lead ya había convertido dos reportes de review en cinco carriles nuevos por su cuenta. Me desperté con la chamba avanzada. Normalmente es al revés.

Las reviews se ganaron el sueldo

Los tests atrapan código roto. Las reviews atraparon ideas equivocadas. Le pedí al lead que trajera revisores expertos, cada uno con una tarea puntual:

  • Un revisor de código encontró cuatro bloqueantes. El mejor: las fechas se guardaban con dos horas de adelanto. Para una sesión a las 7:30, una crueldad.
  • Un experto en UX móvil revisó las 67 capturas y ordenó diez cambios por prioridad. Una línea de “tarea” antes de la primera sesión no se podía tocar, así que el primer día terminaba en siete pantallas de aprendizaje más siete de buscar la máquina, en plena rutina.
  • Un revisor de ciencia del entrenamiento comparó el motor con el método. La app nunca bajaba el peso después de una serie fallida, y calculaba de 54 a 57 minutos para sesiones que en realidad duran unos 42.
  • Un experto en engagement encontró que la última sesión del programa era un callejón sin salida, sin opción de repetirlo, y que fallar una sola semana reiniciaba la racha. O sea, mi problema de siempre, ahora en software.

Cuando los revisores no estaban de acuerdo, el lead decidía y dejaba escrito por qué. Al final, una review de aceptación recorrió todo el flujo del grupo en un navegador y dio luz verde o roja. Fue verde.

Yo, desde el gym

Mi papel fue el de product owner, casi siempre desde el celular entre serie y serie. Botones que se salían de la pantalla. Un header que saltaba. Una imagen de demostración tan chiquita que no se veía. “¿Para qué necesito una foto si ya encontré la máquina?”. Cada comentario se convertía en un carril al toque.

El logo tomó tres rondas. La primera fue un brazo sacando músculo, descartado porque parecía otra cosa. La segunda, una fila de músculos, puños y pesas rusas con caras. La tercera se quedó: una pesa rusa guiñando el ojo, en tinta sobre lila. Ahora también es la mascota, con siete estados de ánimo.

Los números, para que conste

  • Unos 3 días, del 16 al 19 de octubre.
  • Unos 300 commits.
  • Unos 1300 tests en Pest y más de 170 en Vitest, todos en verde, con el análisis estático en su nivel más estricto y cero errores.
  • Laravel, Inertia y React, SQLite y una PWA que registra series sin conexión cuando en el sótano del gym no hay señal. Desplegada con Laravel Forge detrás de Cloudflare. En inglés y en español, del Perú.

Es una app chiquita y privada para mí y unos pocos amigos: gratis, solo por invitación y sin anuncios. Si te da curiosidad, hay una página pública, pero no te puedes registrar.

Con qué me quedo

En tres días tuvimos una app. La app no levanta nada. Andrea no necesitó nada de esto para ir, yo sí, así que armé lo que me quita todas las excusas que tenía: qué hacer, dónde está la máquina, cuánto levanté la última vez y quién se va a dar cuenta si no voy.

Si funciona o no, pregúntame en tres meses. Por ahora la racha dice tres semanas seguidas. Bueno, eso dicen los datos de demo.

Spotter es un proyecto personal independiente, sin relación con Jeff Nippard y sin su respaldo.