


Referencia 04 · App de alimentación para atletas de fisicoculturismo
Tarima
Una app para que un atleta de fisicoculturismo lleve su alimentación y su preparación de competencia junto con su entrenador y su familia.
Está pensada para comida colombiana, medidas caseras y compras en pesos.
Lo que la hace distinta: un agente de IA que corre en un computador propio resuelve las fotos, los platos y las recetas, y una persona revisa lo que la IA estima.
Lo quiero para mi proyectoQué resuelve
Que llevar la alimentación de una competencia deje de ser un trabajo de calculadora.
El problema: un atleta en preparación calcula macros a mano, transcribe sus platos, busca recetas y arma la lista del mercado una y otra vez.
La usan el atleta, su entrenador y su familia. El atleta decide qué registra y qué comparte; el entrenador acompaña las fases; la familia participa en la cocina y el mercado.
Probador
Mira la app en un video con datos de ejemplo.
Qué mirar (3 pasos)
- Mira el día: calorías, proteína, carbohidratos, grasa, fibra y agua frente a los objetivos.
- Mira cómo se revisa un plato reconocido por la IA: alimentos, cantidades y confianza.
- Cierra en el progreso: la tendencia del peso y su banda objetivo.
El probador es el video para que veas la app funcionar aquí. Está grabado sobre pantallas de ejemplo, con un atleta ficticio.
No hay fotos, pesos ni medidas reales de nadie.
Alternativa en texto
- Hoy: los macros del día contra la meta.
- Revisar: un plato con cada alimento, su cantidad y qué tan segura está la IA.
- Progreso: peso diario, tendencia y banda objetivo.
Funciones
Qué hace, por áreas.
Registro
- Registra comidas por texto, dictado, búsqueda, foto, código de barras y favoritos.
- Reconoce platos con IA y te muestra la confianza y las porciones para que los revises.
- Corrige ingredientes y cantidades, edita y deshace registros.
- Agrega lo reconocido a una comida existente sin duplicar lo ya registrado.
Progreso
- Muestra las macros del día frente a los objetivos y deja consultar días anteriores.
- Registra peso y check-in de energía, sueño, hambre, digestión, rendimiento y estrés.
- Dibuja la tendencia del peso y su banda objetivo.
- Planifica volumen, transición, definición, peak week y reverse, y deja aprobar o rechazar los ajustes propuestos.
Cocina y mercado
- Mantiene una despensa, a mano o con una foto de la nevera.
- Propone recetas según macros pendientes, despensa, equipos, tiempo y presupuesto.
- Guía la cocina paso a paso con temporizadores y la pantalla encendida.
- Arma listas de mercado con presupuesto y tienda, y las pasa a la despensa al comprar.
Equipo y avisos
- Invita al entrenador o a la familia con permisos, y permite revocar el acceso.
- Intercambia sugerencias y comentarios, y deja decidir qué se ve del peso y las fotos.
- Conversa con el Coach IA y propone acciones que tú confirmas, como registrar agua, peso o una comida.
- Por Telegram consulta el día, registra peso, agua, fotos y texto, y deshace una comida.
- Manda recordatorios y reportes semanales, y exporta registros y pesos a CSV.
Límites reales
- Se instala como PWA, una app que se instala desde el navegador, y recupera ciertas pantallas sin conexión. No funciona completamente sin internet.
- La IA depende de que el computador del agente esté encendido.
- WhatsApp solo sirve para compartir invitaciones: no hay bot de WhatsApp.
- No incluye pagos ni mapas.
Qué tiene detrás
Lo que pasa por dentro, en dos niveles. Elige el tuyo.
- El atleta toma una foto de su plato o escribe lo que comió, en la app o por Telegram.
- La app deja ese trabajo en una cola, una lista de pendientes guardada en la base de datos.
- El agente de IA, que corre en un computador propio, toma el trabajo, lo resuelve y valida su respuesta. Si el computador está apagado, el trabajo espera.
- El plato aparece en la app ya armado, con alimentos, gramos y nivel de confianza, para que el atleta lo revise.
- El entrenador ve el progreso y recibe un reporte semanal. Las decisiones de ajuste las toma una persona.
- Flujo actual: PWA, Next.js con Better Auth, JWT de usuario y Neon Data API (PostgREST) con RLS, los permisos por fila. Las fotos pasan por rutas autenticadas hacia Vercel Blob privado.
- La cola de IA vive en Postgres con reclamación atómica (FOR UPDATE SKIP LOCKED), prioridades, reintentos y recuperación de trabajos bloqueados. La procesa un agente local.
- El agente usa Claude Code o Codex CLI con sesiones de suscripción y salida estructurada validada con esquemas JSON (7 esquemas). Claude corre sin herramientas y Codex con sandbox de lectura.
- Telegram con grammY usa consulta prolongada, no webhook. ntfy.sh despierta al agente al encolar trabajo, con consulta periódica como respaldo. GitHub Actions dispara los recordatorios por un endpoint protegido y Web Push entrega los avisos.
- Migración de Supabase a Neon con Better Auth, conservando la interfaz de consultas. RLS separa atleta, entrenador y familia. El rol local tarima_agent tiene BYPASSRLS y exige custodia estricta de la llave de firma. No probé RLS contra una base viva.
- Datos externos: Open Food Facts para alimentos empacados y precios del DANE (SIPSA) con un script manual, sin programación verificada.
- Un detector de sustancias, manipulación de agua o sodio, conducta alimentaria y síntomas deriva al entrenador. No equivale a una validación clínica.
- Hay un export de n8n para el reporte semanal. No confirmé que esté activo ni adaptado a Neon, así que no lo cuento.
Despiece · 5 piezas conectadas
- 01PWA con Next.js
- 02Base en Neon con Data API
- 03Agente local con IA
- 04Bot de Telegram
- 05Notificaciones y recordatorios
Un agente es un trabajador de software con una tarea. Aquí hay un solo proceso de agente que hace ocho tipos de trabajo, no ocho agentes: foto de comida, texto de comida, foto de la nevera, receta, plan de mercado, chat con el coach, reporte semanal y revisión de objetivos.
Composición y cuidados
Composición · Nº 04
Composición
- Next.js 16 y React 19: la web y la app.
- Tailwind CSS 4: los estilos.
- Neon con Data API: datos y permisos.
- Better Auth: sesión e invitaciones.
- Vercel Blob: fotos privadas.
- Agente local en Node y TypeScript: el trabajo de IA.
- Claude Code y Codex CLI: la inteligencia del agente.
- grammY: el bot de Telegram.
- ntfy y Web Push: avisos.
- Open Food Facts y DANE: alimentos y precios.
Dónde vive
- Vercel, región gru1, para la web.
- Neon, en aws-sa-east-1, para los datos.
- Un computador con Windows para el agente, con autoarranque.
Cuidados
- Depende del computador del agente y de las suscripciones de IA. No afirmo costo cero, latencia objetivo ni escalabilidad.
- La IA estima y requiere revisión humana. No sustituye a un profesional de salud.
- Versiones declaradas, no instaladas verificadas: Next.js 16.3.6, React 19.2.8, Better Auth ^1.7.7 y, para el agente, Node >=24.
Hecho en Manizales · 2026
Guía de tallas
Talla XL: lleva 5 piezas conectadas por dentro. La regla: S de 1 a 2 piezas, M 3, L 4 y XL 5 o más. La letra es una etiqueta; el dato es el conteo.
- PWA con Next.js.
- Base en Neon con Data API.
- Agente local con IA.
- Bot de Telegram.
- Notificaciones y recordatorios.
Cifras de tamaño (verificado en el repositorio el 2026-10-08)
- 7 commits.
- 252 archivos de código rastreados (incluyen SQL, pruebas y scripts).
- 15 migraciones de Supabase y 9 de Neon, por la migración de plataforma.
- 38 tablas distintas definidas en el esquema y las migraciones.
- 7 esquemas de salida de IA.
- 1 workflow de n8n y 2 de GitHub Actions.
S de 1 a 2 piezas conectadas, M 3, L 4 y XL 5 o más. La letra es una etiqueta; el dato es el conteo.
Certificado
Las pruebas que respaldan esta pieza.
Verificado en el repositorio · 2026-10-08
- 38tablasFuente: create table en neon/schema.sql y neon/migrations/*.sql
- 158pruebas escritas en 14 archivosFuente: conteo de test(/it( en agent y web
- 24migraciones (15 Supabase, 9 Neon)Fuente: supabase/migrations/*.sql y neon/migrations/*.sql
- 7esquemas de salida de IAFuente: agent/src/schemas/*.json
Evidencia (verificado en el repositorio el 2026-10-08)
- 14 archivos de prueba y 158 pruebas escritas (conteo en el código): 51 del agente y 107 de la web. Tocan el parser de comida colombiana, las fórmulas energéticas, la tendencia del peso, la cocina y los precios, el CSV, el autoguardado, el proveedor alterno y los permisos.
- 2 workflows de GitHub Actions, el sistema que corre las pruebas cada vez que se sube un cambio. El de CI revisa lint, tipos, pruebas y build de la web, y tipos y pruebas del agente. La auditoría de dependencias es informativa y no bloquea.
- CSP, HSTS, nosniff, bloqueo de marcos y permisos de cámara y micrófono restringidos, definidos en la configuración de la web.
- Registro cerrado por invitación, con límite de intentos. Las fotos verifican sesión, tipo, tamaño y permisos por rol.
- La cola de trabajos reclama de forma atómica y la IA recibe entradas acotadas y devuelve JSON validado.
Lo que no afirmo
- Que las pruebas pasen: no las ejecuté.
- Una CSP estricta: conserva unsafe-inline.
- Sentry: no encontré configuración.
- El benchmark histórico de 47,2 s con Sonnet y 32,0 s con Haiku como rendimiento actual.
- Costo cero, escalabilidad ni latencia objetivo.
- Resultados físicos, diagnóstico ni seguridad clínica.
- RLS probada contra una base viva.
pruebas escritas (conteo en el código)
Lo quiero para mi proyectoUna app de seguimiento, para tu negocio
Si trabajas con deportistas, entrenadores o nutrición, o tu negocio necesita registros desde el celular con revisión humana, esto se parece a lo que necesitas.
La IA estima y una persona decide. Así la diseñé.