JFit — Privacy Policy
JFit is a private, single-user application. It is built and used by one person, Javier Galiano, to track his own training, sleep and recovery. It has no other users, no accounts to register, no advertising and nothing is sold. This policy describes what happens to the WHOOP data that flows into it.
1. Data accessed from WHOOP
With your explicit authorisation through WHOOP's OAuth consent screen, JFit reads the following from the WHOOP API:
- Recovery — recovery score, heart rate variability (HRV), resting heart rate, blood oxygen, skin temperature
- Cycles — daily Strain, average and maximum heart rate, energy expenditure
- Sleep — duration, sleep stages, sleep performance, respiratory rate
- Workouts — activity type, duration, Strain and heart rate
- Profile and body measurements — name, email, height, weight, maximum heart rate
JFit only reads data. It never writes to, modifies or deletes anything in your WHOOP account.
2. Why this data is used
Exclusively to display personal training, sleep and recovery metrics inside the app, and to generate individual training and nutrition guidance. The data is not used for profiling by third parties, for advertising, for research, or for any commercial purpose.
3. Where the data is stored
Metrics are stored in Cloudflare Workers KV, a key-value store running on Cloudflare's infrastructure, accessible only through a PIN-protected endpoint. WHOOP access and refresh tokens are held in the same store and are never exposed to the browser or to any client-side code.
4. Sharing with third parties
The data is never sold, rented, published or shared with advertisers or data brokers. There are exactly two processors involved:
- Cloudflare — hosting and storage of the application and its data.
- Anthropic (Claude API) — to generate personalised recommendations, JFit sends a summary of derived metrics (recovery, HRV, sleep, Strain, weight) to Anthropic's API. Anthropic processes these requests to return a response. No WHOOP access tokens and no WHOOP account credentials are ever sent.
Derived metrics are additionally made available to JChef, a private nutrition application built and used by the same single user, through an authenticated endpoint. No other system receives this data.
5. Retention and deletion
Data is kept only while it is useful to the user, and rolling limits cap history (roughly three years for HRV and resting heart rate). You can remove it at any time:
- Revoke access from WHOOP — through the privacy settings of your WHOOP account, at any moment and without notice.
- Disconnect inside JFit — deletes the stored access and refresh tokens immediately.
- Delete the stored metrics — via the app's reset controls, or on request to the contact address below.
Revoking access in WHOOP stops all future synchronisation immediately.
6. Security
All traffic travels over HTTPS. The OAuth client secret lives only in the server environment and never reaches the browser. The authorisation flow is protected against cross-site request forgery by a single-use state token that expires after ten minutes. Application endpoints require a PIN.
7. Your rights
Under the GDPR you may request access, rectification, erasure, restriction, objection and portability of your personal data. Because this is a single-user application, the data subject and the operator are the same person; any request can be made at the address below.
8. Children
JFit is not directed at anyone under 16 and does not knowingly process their data.
9. Changes
Any update to this policy will be published at this same address with a revised date.
10. Contact
Javier Galiano — javigaliana@gmail.com
JFit — Política de Privacidad
JFit es una aplicación privada de un solo usuario. La desarrolla y la usa una única persona, Javier Galiano, para seguir su propio entrenamiento, sueño y recuperación. No tiene más usuarios, no hay registro de cuentas, no hay publicidad y no se vende nada. Esta política explica qué ocurre con los datos de WHOOP que entran en ella.
1. Datos a los que se accede en WHOOP
Con tu autorización explícita en la pantalla de consentimiento de WHOOP, JFit lee de la API de WHOOP:
- Recuperación — recovery score, variabilidad de la frecuencia cardíaca (HRV), frecuencia cardíaca en reposo, saturación de oxígeno, temperatura de la piel
- Ciclos — strain diario, frecuencia cardíaca media y máxima, gasto energético
- Sueño — duración, fases, rendimiento del sueño, frecuencia respiratoria
- Entrenamientos — tipo de actividad, duración, strain y frecuencia cardíaca
- Perfil y medidas corporales — nombre, email, altura, peso, frecuencia cardíaca máxima
JFit solo lee. Nunca escribe, modifica ni borra nada en tu cuenta de WHOOP.
2. Para qué se usan
Exclusivamente para mostrar métricas personales de entrenamiento, sueño y recuperación dentro de la app, y para generar recomendaciones individuales de entrenamiento y nutrición. No se usan para elaborar perfiles por parte de terceros, ni con fines publicitarios, de investigación o comerciales.
3. Dónde se almacenan
Las métricas se guardan en Cloudflare Workers KV, accesible únicamente a través de un endpoint protegido por PIN. Los tokens de acceso y refresco de WHOOP se guardan en el mismo almacén y nunca se exponen al navegador ni a código de cliente.
4. Cesión a terceros
Los datos no se venden, alquilan, publican ni comparten con anunciantes o intermediarios de datos. Intervienen exactamente dos encargados de tratamiento:
- Cloudflare — alojamiento y almacenamiento de la aplicación y sus datos.
- Anthropic (API de Claude) — para generar recomendaciones personalizadas, JFit envía un resumen de métricas derivadas (recuperación, HRV, sueño, strain, peso) a la API de Anthropic, que procesa la petición y devuelve una respuesta. Nunca se envían tokens de acceso ni credenciales de la cuenta de WHOOP.
Las métricas derivadas se ponen además a disposición de JChef, aplicación privada de nutrición del mismo usuario único, mediante un endpoint autenticado. Ningún otro sistema recibe estos datos.
5. Conservación y borrado
Los datos se conservan mientras resultan útiles al usuario, con límites móviles que acotan el histórico (en torno a tres años para HRV y frecuencia cardíaca en reposo). Puedes eliminarlos cuando quieras:
- Revocar el acceso desde WHOOP — en los ajustes de privacidad de tu cuenta, en cualquier momento y sin preaviso.
- Desconectar desde JFit — borra de inmediato los tokens almacenados.
- Borrar las métricas guardadas — desde los controles de reseteo de la app o solicitándolo en la dirección de contacto.
Revocar el acceso en WHOOP detiene toda sincronización futura de forma inmediata.
6. Seguridad
Todo el tráfico va por HTTPS. El client secret de OAuth reside solo en el entorno del servidor y nunca llega al navegador. El flujo de autorización se protege frente a CSRF con un token state de un solo uso que caduca a los diez minutos. Los endpoints de la aplicación exigen PIN.
7. Tus derechos
Conforme al RGPD puedes ejercer los derechos de acceso, rectificación, supresión, limitación, oposición y portabilidad. Al tratarse de una aplicación de un único usuario, el interesado y el responsable son la misma persona; cualquier solicitud puede dirigirse a la dirección indicada abajo.
8. Menores
JFit no se dirige a menores de 16 años ni trata conscientemente sus datos.
9. Cambios
Cualquier actualización de esta política se publicará en esta misma dirección con la fecha revisada.
10. Contacto
Javier Galiano — javigaliana@gmail.com