Política de privacidad
Esto describe la app móvil BikeOtter y el sitio web bikeotter.app. Se ha escrito leyendo lo que el software hace realmente — qué campos lleva un punto de seguimiento en directo, qué barrido lo borra y cuándo, qué servidores se contactan — y no a partir de una plantilla. Donde un límite aparece como un número, ese número es el que está en el código.
Versión 1.9 · última actualización 7 de octubre de 2026 · se aplica a la app y a este sitio
La versión corta
- No hay analítica ni informes de fallos. Ni Google Analytics, ni Firebase, ni Sentry, ni ningún SDK de publicidad o atribución — ni en la app ni en este sitio web. Nada aquí te contabiliza.
- La mayor parte de la app no necesita cuenta. Planificar rutas, enviar rutas, descargar salidas, las reglas y los avisos funcionan sin iniciar sesión, y tus ajustes se quedan en el teléfono. La cuenta existe solo para el seguimiento en directo, los correos de aviso de salida, la conexión con Strava, la sincronización de rutas si la activas (§3.2) y — si tienes Plus y la activas — una copia de seguridad de tus ajustes (§3.1).
- Tus archivos de salida y tu voz se quedan en el teléfono, y tus rutas también, salvo que actives la sincronización de rutas. El reconocimiento de voz se ejecuta en el dispositivo; deliberadamente no hay nivel de voz en la nube. La sincronización de rutas, y guardar una ruta en el planificador de rutas de este sitio web, guardan una copia de tus rutas en tu cuenta (§3.2).
- El seguimiento en directo es la única función que publica tu posición, a cualquiera que tenga el enlace, mientras dura la salida. La frecuencia cardiaca, la potencia y la cadencia están desactivadas por defecto. Tus puntos de posición y el registro de la sesión se borran juntos, 7 días después de que la salida termine o caduque.
- Dos cosas que la app hace sin preguntar: comprueba al arrancar si hay un parche de código, a través de Shorebird, y esa comprobación no se puede desactivar. No lleva ninguna identidad que nosotros le demos — pero sí llega a un servidor. §10.1 explica exactamente qué sabemos y qué no. Y al arrancar pregunta a RevenueCat, que gestiona para nosotros las compras de Plus, si tienes Plus (§10).
- Nada se vende, se alquila ni se comparte con fines publicitarios. Nunca.
1. Quién es responsable
El responsable del tratamiento descrito aquí, en el sentido del Art. 4(7) GDPR, es:
OpenBikeControl UG (haftungsbeschränkt)Ulrichstraße 24
71636 Ludwigsburg, Germany
Correo electrónico: support@bikeotter.app
Los datos completos de la empresa están en la página del aviso legal. No hay delegado de protección de datos obligatorio; escribe a la dirección de arriba para cualquier asunto de esta página.
2. Lo que nunca sale de tu teléfono
Lo siguiente se guarda en el almacenamiento propio de la app en tu dispositivo y BikeOtter no lo sube a ninguna parte. Solo sale si tú personalmente lo exportas o lo compartes.
- Tu biblioteca de rutas, salvo que actives la sincronización de rutas o guardes rutas en el planificador de rutas de este sitio web. Las rutas son archivos en el teléfono: geometría más un índice. Compartir una ruta produce un enlace autocontenido que lleva la ruta dentro; ninguna ruta se sube a un servidor para compartirla.
- Tus salidas. Las salidas descargadas del ciclocomputador, y las grabadas por el teléfono, se guardan como archivos FIT y GPX en el dispositivo. Solo salen cuando las compartes o cuando has activado la subida a Strava.
- Control por voz. El reconocimiento de voz está configurado para ejecutarse en el dispositivo, y los comandos se interpretan primero con una gramática sin conexión y después, si hace falta, con un modelo en el dispositivo (Apple Foundation Models o Gemini Nano). Deliberadamente no hay nivel de voz ni de lenguaje en la nube — no se envía ningún audio ni ninguna transcripción a ningún servidor.
- Tus ajustes, reglas, lugares guardados y la configuración de reenvío de notificaciones — salvo que tengas Plus y actives la copia de seguridad de ajustes. Entonces se guarda en nuestros servidores una copia de tus ajustes y reglas (nunca de tus lugares guardados) para que puedas restaurarla en otro teléfono, hasta que vuelvas a desactivar la copia.
- Las notificaciones reenviadas al ciclocomputador (solo Android). Si concedes acceso a las notificaciones, la app lee las notificaciones del teléfono para mostrarlas en el ciclocomputador y las pasa directamente por Bluetooth. Su contenido no lo guarda la app y nunca llega a un servidor.
- Todo lo que la app hace con el propio ciclocomputador — vincular, enviar rutas, descargar salidas, avisos en la pantalla — ocurre por una conexión Bluetooth directa entre tu teléfono y tu dispositivo. Ninguna nube del fabricante ni ningún servidor de BikeOtter está en ese camino.
3. Tu cuenta
Solo se necesita cuenta para el seguimiento en directo, los correos de aviso de salida, la conexión con Strava, la sincronización de rutas (incluido guardar una ruta en este sitio web) y la copia de seguridad de ajustes opcional para usuarios de Plus. Todo lo demás funciona sin iniciar sesión.
Puedes iniciar sesión de dos maneras: con un enlace mágico enviado a tu dirección de correo o con iniciar sesión con Strava. No hay contraseña ni perfil. Lo que se guarda es un registro de usuario en nuestro proveedor de backend (Supabase) con tu dirección de correo y las marcas de tiempo de inicio de sesión, más — para el inicio de sesión con Strava — el id de atleta de Strava y el nombre visible.
Tu dirección de correo se usa para identificarte, y su parte local (lo que va antes de la
@) se convierte en el nombre de ciclista que ven los espectadores de un enlace
en directo. Si tu dirección es [email protected], los espectadores ven
jane.doe. Tenlo en cuenta al elegir con qué dirección inicias sesión.
Para borrar tu cuenta y todo lo asociado a ella, escribe a support@bikeotter.app desde la dirección con la que inicias sesión. Borrar la cuenta arrastra en cascada: las sesiones de seguimiento en directo y sus puntos de posición, las salidas en grupo, los mensajes que te enviaron los espectadores, tus contactos guardados y sus grupos, los registros de notificaciones, la conexión con Strava, tu copia de seguridad de ajustes y tus rutas sincronizadas se van con ella. Todavía no hay un botón de autoservicio en la app — la página de borrado da los pasos, la lista completa de lo que se va y lo que se conserva después.
La lista de deseos. Con la sesión iniciada — en la página de la lista de deseos o en la app — puedes proponer una función y votar las de otros. Una propuesta guarda su título, la descripción que das y tu cuenta como autora; un voto guarda qué cuenta votó qué. Mientras una propuesta no se acepta, solo la vemos tú y nosotros. Si marcas «Podéis contactarme sobre esta idea», guardamos ese consentimiento con la propuesta y, cuando tu cuenta no tiene una dirección a la que podamos escribir (un inicio de sesión con Strava no la tiene), la dirección que nos das para ello. Ambos se usan solo para preguntar sobre esa idea concreta o responderla, y ninguno se muestra nunca públicamente. También podemos responderte en tu conversación de soporte dentro de la app, hayas marcado la casilla o no; como con cualquier respuesta de soporte, solo sale un correo avisándote si tenemos una dirección real tuya. Una nota del desarrollador bajo una propuesta es pública, como la propia propuesta. Borrar tu cuenta borra tus votos y elimina automáticamente el consentimiento y la dirección de contacto; una propuesta que ya está en la lista se queda ahí, sin vínculo contigo.
3.1 Copia de seguridad de ajustes (Plus)
Desactivada por defecto, y solo si tú la activas. La copia de seguridad de ajustes es una función de BikeOtter Plus. No se sube nada hasta que, con la sesión iniciada, la activas en Ajustes → Copia de seguridad de ajustes y aceptas lo que guarda. A partir de ahí, la app mantiene una copia de tus ajustes en nuestro backend — Supabase, el mismo proveedor y la misma región West EU (Ireland) que todo lo demás del §10 — para que, tras iniciar sesión en un teléfono nuevo o en un segundo teléfono, puedas restaurarlos en un solo paso. Mientras está activada, la copia se actualiza automáticamente unos segundos después de que cambies un ajuste, y Hacer copia ahora la actualiza cuando quieras.
Qué contiene la copia:
- tus unidades y tu velocidad media en bici;
- tu peso corporal y tus bicis y configuración de neumáticos, usados para el consejo de presión de neumáticos;
- tu tipo de piel, usado para el recordatorio de protector solar;
- tus reglas de aviso — preajustes y reglas personalizadas, y cuáles están activadas;
- la lista de apps a las que se permite reenviar notificaciones al ciclocomputador — solo nombres de paquete, nunca el contenido de una notificación;
- tus umbrales de zonas de frecuencia cardiaca y de potencia;
- el tratamiento predeterminado de los avisos de giro, el orden y el filtro de la biblioteca de rutas, y el umbral de desvío del recálculo por voz;
- tus preferencias de avisos hablados;
- los interruptores de compartir en directo («compartir velocidad», «compartir frecuencia cardiaca y potencia», permitir mensajes), y los de pasar a directo automáticamente y de enviar a los demás ciclistas al ciclocomputador;
- las preferencias de subida automática a Strava y de nota de subida — solo si están activadas, nunca un token de Strava;
- si el registro de diagnóstico está activado;
- el modelo de teléfono del que viene la copia (por ejemplo «Pixel 8»), la versión de la app, cuándo diste tu consentimiento y cuándo se actualizó la copia por última vez.
Qué no contiene: tus rutas, tus salidas, tu posición, lugares guardados, entrenamientos guardados, qué ciclocomputadores o sensores has emparejado, ningún token de cuenta ni de Strava, el contenido de ninguna notificación, ni el registro de diagnóstico.
Una copia por cuenta. Cada copia sustituye a la anterior; no hay historial. La base de datos solo deja leerla a tu propia cuenta — ni a los espectadores, ni a otros ciclistas.
Borrarla. Desactivar la copia de seguridad de ajustes borra la copia de nuestros servidores de inmediato — así retiras tu consentimiento. Borrar tu cuenta también la borra. Aparte de eso, no caduca automáticamente. Si tu suscripción a Plus termina, no se hacen copias nuevas; la copia existente se conserva hasta que desactives la copia de seguridad o borres tu cuenta, y puedes seguir desactivándola — lo que la borra — sin Plus.
Por qué consentimiento. El tipo de piel y el peso corporal pueden leerse como datos sobre tu salud, así que la copia de seguridad se basa en tu consentimiento explícito (Art. 6(1)(a) y Art. 9(2)(a) GDPR, ver §13). Activarla es ese consentimiento; desactivarla lo retira.
3.2 Sincronización de rutas
Desactivada hasta que la actives. La sincronización de rutas guarda una copia de tus rutas en tu cuenta de BikeOtter, para que la misma biblioteca aparezca en la app y en el planificador de rutas de este sitio web (bikeotter.app/plan). En la app no se sube nada hasta que tú, con la sesión iniciada, la actives en Ajustes → Sincronización en la nube. En el sitio web, una ruta se guarda cuando la guardas con la sesión iniciada, y una vez al iniciar sesión: una ruta que planificaste sin sesión y que sigue en pantalla se guarda entonces en tu cuenta. Si no, una ruta que planificas se queda en tu navegador (ver §8). La copia la guarda Supabase, en la misma región West EU (Ireland) que todo lo demás del §10.
Qué se guarda de cada ruta: la ruta tal como la guarda la propia app, es decir, la línea con su perfil de altitud, las indicaciones de giro y las paradas (POI) a lo largo de ella, el tipo de firme a lo largo del recorrido, las paradas planificadas y el perfil de cálculo si se planificó, los intervalos y el plan de frecuencia cardiaca si los tiene, su nombre, si la marcaste con una estrella, su ajuste de indicaciones de giro, de dónde viene (por ejemplo, planificada, una importación GPX o Strava) y si se creó en un teléfono o en el sitio web, y una huella de su contenido para reconocer que vuelves a importar el mismo archivo. Junto a ella: un breve resumen (distancia, desnivel, número de paradas, punto de salida y la zona del mapa que cubre) para poder listar la biblioteca sin cargar cada ruta, un número de revisión y marcas de tiempo para que tus dispositivos sepan qué copia es más reciente y, cuando pides al sitio web que envíe una ruta a tu ciclocomputador, una marca que le dice a tu teléfono que la pase al ciclocomputador la próxima vez que se conecten. Por cuenta guardamos además una marca de tiempo: cuándo sincronizó la cuenta por última vez.
Qué se queda en el teléfono: a qué ciclocomputador se envió una ruta y el vínculo de la app con la copia en ese dispositivo, las miniaturas de mapa de tu biblioteca y qué ruta está activa en tu ciclocomputador.
Plus y Free. Con Plus se sincroniza toda tu biblioteca. Sin Plus, se guardan en la nube hasta 10 rutas: las que creaste en el sitio web y las que eliges conservar en la nube desde la app. Si tienes Plus o no se comprueba en nuestro servidor, a partir del id de tu cuenta. Si tu suscripción a Plus termina, no se borra nada: las rutas que ya están en la nube se quedan, puedes seguir abriéndolas y borrándolas, y no se añade nada por encima de 10.
Quién puede verla. La base de datos solo deja leer tus rutas en la nube a tu propia cuenta; ni espectadores ni otros ciclistas. Cada cambio pasa por una única función de servidor que primero comprueba quién eres. Mientras la app está abierta, escucha los cambios en tus rutas, para que una ruta que guardas en el sitio web aparezca enseguida en el teléfono.
Cuánto tiempo se guarda. Una ruta sincronizada se queda hasta que la borres, o hasta que pasen 24 meses sin ninguna sincronización desde tu cuenta, ni desde la app ni desde el sitio web; entonces se borran todas las rutas en la nube de la cuenta, junto con la marca de tiempo de su última sincronización. Borrar una ruta elimina su contenido al momento. Lo que queda es una marca (su id, un número de revisión, de dónde viene y cuándo se borró) durante 180 días, para que tus otros dispositivos también borren su copia en vez de volver a subirla. Desactivar la sincronización detiene la sincronización, pero no borra lo que ya está en la nube. Para quitar una ruta de nuestros servidores, elige Conservar solo en este teléfono en ella en la app (se queda en tu teléfono), o bórrala en el sitio web, lo que la borra también en tu teléfono. Borrar tu cuenta lo borra todo (ver la página de borrado).
4. Seguimiento en directo
Esta es la única función que publica dónde estás. Está desactivada a menos que la inicies, y termina cuando termina la salida.
Qué es un enlace compartido
Iniciar una salida en directo crea una sesión con un token de compartición: 20 caracteres extraídos de una fuente aleatoria criptográfica, que da un enlace de la forma bikeotter.app/r/<token>. Cualquiera que tenga ese enlace puede mirar, sin cuenta y sin iniciar sesión. El enlace es la credencial, así que trátalo como tal — pásaselo a la gente que de verdad quieres que mire. A los espectadores solo se les muestra lo que se lista abajo; nunca reciben tu dirección de correo, tu id de cuenta ni el token de ninguna otra sesión.
El navegador de un espectador recibe un token de acceso de corta duración limitado a esa única sesión y con un tope de seis horas. La base de datos lo impone columna a columna: el propietario de la sesión y su token de compartición no son legibles por los espectadores en absoluto.
La app te muestra en directo cuánta gente está mirando. No te dice quiénes son — no se recoge ninguna identidad de los espectadores.
Qué contiene un punto en directo
Los puntos se envían mientras pedaleas, limitados por tiempo y distancia. Cada uno lleva:
| Campo | Se envía | Notas |
|---|---|---|
| Latitud, longitud | Siempre | La razón de ser de la función. |
| Altitud, tiempo transcurrido, pendiente, estado de la salida | Siempre | La altitud es a qué altura sobre el nivel del mar estás — la tercera coordenada de
una posición que ya estás compartiendo, y la misma lectura de la que se calcula la
pendiente que la acompaña, así que las dos no se envían por separado. El estado de
la salida es active, paused, auto_paused o
not_started, para que la página pueda mostrar PAUSADO en vez
de una insignia EN DIRECTO que miente. Los cuatro se envían
independientemente de los dos interruptores de abajo, a propósito. |
| Vuelta y posición en la vuelta | Solo en una carrera | Cuántas vueltas has completado y cuánto llevas de la actual, medido desde la línea de salida/meta. Se calcula en tu móvil a partir de la posición de arriba, así que no dice nada que la posición no diga ya. |
| Batería baja | Solo con batería baja — sin interruptor | Un indicador, no un porcentaje — esta página nunca sabe cuánta batería te queda, solo si está baja. Se envía solo mientras la batería de tu teléfono está baja y no se está cargando, para que quien te observa pueda distinguir un teléfono a punto de apagarse de una señal perdida. Mientras esto ocurre, la app también envía tu posición con menos frecuencia. |
| Velocidad, distancia recorrida, desnivel acumulado hasta ahora, distancia y ascenso restantes, ETA | Solo con «compartir velocidad» activado — activado por defecto | Desactívalo y ninguno de estos seis se sube en absoluto. El «desnivel acumulado hasta ahora» son los metros totales que has subido en esta salida, una cifra distinta de la altitud de arriba: uno es un total acumulado, la otra es dónde estás ahora mismo. |
| Frecuencia cardiaca, potencia, cadencia | Solo con «compartir frecuencia cardiaca y potencia» activado — desactivado por defecto | La frecuencia cardiaca es un dato de salud. Solo se sube si activas esto, y el interruptor empieza desactivado. La cadencia — a qué velocidad pedaleas, en revoluciones por minuto — se rige por este mismo interruptor aunque el interruptor no lleve su nombre: es una lectura de sensor del mismo tipo, y dice tanto de tu esfuerzo como la potencia. El interruptor en la app lo indica debajo. |
Qué contiene la propia sesión
Junto a los puntos: tu nombre de ciclista (ver §3), el nombre de la ruta, el trazado planificado de la ruta, su distancia total, las coordenadas donde empieza la ruta, los dos interruptores de compartición de arriba, si los mensajes están activados, el estado de la sesión y sus marcas de tiempo, y — para una salida en grupo — a qué grupo pertenece.
Cuándo termina y cuándo se borra
Una sesión caduca en el primero de estos momentos que llegue, y la caducidad se comprueba cada minuto:
- la hora de caducidad fijada al iniciarla — seis horas por defecto;
- 45 minutos después del último punto o señal de vida de la app, para que una salida olvidada no siga «en directo» toda la tarde;
- 60 minutos después de crearse, si nunca llegó ninguna posición.
El borrado sigue después automáticamente:
- El registro de la sesión se borra 7 días después de terminar o caducar, llevándose consigo cualquier cosa que siga asociada a él.
- Tus puntos de posición se borran con él — los mismos 7 días, ni un momento más. Antes se barrían a las 24 horas, por delante de la sesión; ahora se conservan durante toda la vida de la propia sesión, para que una salida cuyo ciclocomputador perdió la grabación aún pueda reconstruirse desde el rastro en directo dentro de la app. Nada más cambió en el barrido, y el límite máximo de cuánto tiempo se guarda una salida compartida sigue siendo de 7 días.
Las salidas en grupo funcionan igual una vez que la salida está en marcha: un enlace de grupo es válido durante 12 horas desde que se pone en marcha, admite como máximo 10 ciclistas (15 en una carrera), y el registro del grupo se borra 7 días después de terminar. Una salida planificada con antelación es distinta: el enlace — y los nombres de quienes ya han dicho que vienen — sigue abierto para unirse durante hasta 30 días antes de que nadie se ponga en marcha; el reloj de las 12 horas no empieza hasta que el primer ciclista se pone en directo. Terminar una compartición desde la app detiene la subida inmediatamente; los barridos limpian después los datos guardados según el calendario de arriba.
Una salida en grupo puede ser una carrera. El móvil de cada corredor guarda entonces, además, sus tiempos por vuelta en un registro propio, junto con el nombre de la carrera y el nombre del ciclista que aparece en la lista. Esos tiempos pueden leerlos los corredores de esa carrera y — solo mientras la salida en grupo siga existiendo — cualquiera que tenga su enlace. Se borran 90 días después de su último cambio, es decir, más tarde que la propia salida en grupo, para que cada corredor pueda seguir consultando los resultados después.
5. Mensajes de los espectadores
Si activas los mensajes, alguien que llegó a tu enlace a través de uno de tus correos de aviso puede enviarte mensajes cortos, que aparecen en tu ciclocomputador. Un espectador cualquiera que simplemente tiene el enlace no puede — enviar requiere un token por contacto que solo lleva el enlace enviado por correo.
Un mensaje guarda su texto, el contacto que lo envía y una marca de tiempo. Los remitentes están limitados a tres mensajes por hora. Los mensajes están asociados a la sesión y se borran con ella — es decir, dentro de la misma ventana de 7 días que el §4. Los mensajes se guardan en forma legible en el servidor; no están cifrados de extremo a extremo.
6. Correos de aviso de salida
Puedes guardar contactos para que, al iniciar una salida en directo, se les envíe el enlace por correo. No se envía nada a menos que elijas un grupo al ponerte en directo; elegir «nadie en esta salida» no envía nada.
Qué se guarda por contacto: la dirección de correo (en minúsculas), un nombre opcional, un token de baja, un token de mensajes y — si procede — cuándo se dieron de baja o cuándo el correo hacia esa dirección rebotó de forma permanente. Los contactos solo son visibles para ti; la base de datos deniega por completo el acceso anónimo a ellos.
Qué contiene y revela el correo: tu nombre de ciclista, el nombre y la distancia de la
ruta, el enlace para mirar, cuándo caduca el enlace y un enlace de baja. Lo envía
[email protected] mediante un Cloudflare Worker en nuestro nombre, y su
Reply-To apunta a tu propia dirección de correo para que un destinatario
pueda responderte directamente — lo que significa que tus destinatarios pueden ver la
dirección con la que iniciaste sesión.
El correo de llegada (opcional y desactivado hasta que lo pidas): si activas «Avísales cuando vuelvas» para un grupo de contactos, las personas a las que se envió el enlace de esa salida — solo esas, y solo si el correo del enlace les llegó de verdad — reciben un aviso breve cuando la salida termina: que has terminado, la distancia y el tiempo en movimiento que la salida publicó, la hora a la que llegaste y el mismo enlace para mirar. En una salida con una ruta cargada también puedes recibir un aviso previo unos quince minutos antes de la llegada estimada. La distancia solo se incluye si compartiste «Velocidad y distancia» en esa salida: las cifras se leen de lo que la salida publicó realmente, nunca se reconstruyen a partir de la ruta que planificaste. Una sesión que simplemente caduca o expira no envía nada — una caducidad no es una llegada. Ninguno de los dos avisos lleva el token de mensajes, porque la salida ha terminado.
Límites: como máximo un correo de cada tipo por contacto y salida — el enlace, el aviso previo opcional y el aviso de llegada (a un contacto no se le puede escribir dos veces del mismo tipo por la misma sesión), como máximo 50 miembros en un grupo, y como máximo 200 correos de aviso por ciclista en una ventana móvil de 24 horas.
Darse de baja: cada correo lleva un enlace de baja en el pie y las cabeceras estándar de baja en un clic, de modo que el propio botón «cancelar suscripción» del cliente de correo funciona. Darse de baja no necesita cuenta y detiene todos los futuros avisos de salida a esa dirección.
Tu responsabilidad: cuando añades la dirección de correo de otra persona nos estás pidiendo escribir a alguien que no ha tratado con nosotros. Añade solo a gente que espera saber de ti. Los contactos no caducan automáticamente — se conservan hasta que borres el contacto o tu cuenta.
Invitaciones a carreras: al preparar una carrera puedes invitar a contactos como
corredores o como espectadores. Cada invitación queda registrada — qué contacto, qué carrera,
corredor o espectador y cuándo se envió — para que nadie reciba el correo dos veces; el
registro solo lo ves tú y se borra con la salida en grupo de la carrera, 7 días después de
que termine. La invitación sale de [email protected] con tu nombre y con el
Reply-To puesto en tu propia dirección de correo. La invitación de un
corredor lleva tu nombre, el nombre de la carrera, la hora de salida, las vueltas y la
longitud del circuito, una imagen del recorrido en un mapa, el enlace a la carrera y una breve
descripción de lo que hace BikeOtter en una carrera; la de un espectador lleva tu nombre, el
nombre y la hora de salida de la carrera y el enlace para seguirla. Ambas llevan el mismo
enlace de baja que cualquier otro correo. Se puede invitar como máximo a 15 corredores y
30 espectadores por carrera, y las invitaciones cuentan dentro de los mismos 200 correos
por cada 24 horas móviles.
7. Strava
Conectar Strava es opcional. La autorización ocurre en el navegador del sistema, en las propias páginas de Strava; BikeOtter nunca ve tu contraseña de Strava.
- Permisos solicitados:
read,read_all,activity:read_allyactivity:write— suficientes para listar e importar tus rutas y actividades y para subir salidas. - Dónde viven los tokens: tus tokens de acceso y de refresco de Strava se guardan solo en el servidor, en nuestro backend, y no los puede leer nada salvo la función de servidor que los usa. El teléfono solo tiene un valor de corta duración mantenido en memoria durante el intercambio de inicio de sesión, nunca escrito en disco.
- Qué sube: el propio archivo de la salida (un FIT comprimido), más un nombre y una descripción opcionales, cuando subes una salida.
- Qué baja: tus rutas y actividades de Strava, exportaciones GPX de rutas, y los flujos de posición/altitud/tiempo de una actividad cuando la importas como ruta. Las respuestas se guardan en caché asociadas a tu cuenta y se borran a las 48 horas.
- Desconectar revoca el token en Strava y elimina la conexión guardada. Hasta que desconectes, el registro de conexión persiste — no caduca automáticamente.
Lo que Strava haga después con tus datos se rige por la propia política de privacidad de Strava. Strava es una empresa estadounidense y usarla implica una transferencia de datos a Estados Unidos.
8. Tiempo, POI, geocodificación, cálculo de rutas y mapas
Varias funciones necesitan preguntar a un servicio externo por un lugar. Hay una distinción importante en cómo se les pregunta:
- A través de nuestro backend — previsiones del tiempo, búsqueda de POI, geocodificación y todo lo de Strava. Tu teléfono pregunta a nuestra función de servidor. Para el tiempo, la geocodificación y Strava, la función de servidor pregunta después al servicio externo, que por tanto ve las coordenadas o los términos de búsqueda, pero no tu dirección IP. La búsqueda de POI no pregunta a ningún servicio externo: se responde desde nuestra propia copia de los datos de OpenStreetMap (ver más abajo).
- Directamente desde tu teléfono — el cálculo de rutas (BRouter) y las teselas de mapa (el servidor de teselas de OpenStreetMap). Esos servicios reciben la petición desde tu dispositivo, así que ven tu dirección IP junto con las coordenadas o la zona del mapa que estás mirando, y pueden registrarla según sus propias políticas.
- A través de nuestro proxy de rutas, desde el planificador de rutas de este sitio web
(bikeotter.app/plan). Un navegador en este sitio no puede
preguntar a BRouter directamente, así que los puntos que colocas y el perfil que eliges van
a nuestro propio proxy de rutas en
map.bikeotter.app, un Cloudflare Worker, que pregunta a BRouter (brouter.de) y te devuelve la respuesta. BRouter ve por tanto las coordenadas y el perfil, pero no tu dirección IP. El proxy guarda cada respuesta hasta 24 horas, indexada por los puntos y el perfil, para no pedir dos veces la misma ruta; usa tu dirección IP solo para contar peticiones de cara a un límite de frecuencia, y no guarda ningún registro de quién preguntó. La búsqueda de lugares y los nombres que se muestran para tus paradas pasan por la misma función de servidor de geocodificación que en la app, descrita arriba.
Planificar en este sitio web no necesita cuenta, y nada de lo que planificas llega a nuestros servidores hasta que lo guardas. Aparte de las cachés de corta duración descritas aquí, que contienen lugares y rutas, no personas, nada de lo que planificas llega a nuestro almacenamiento. La ruta que estás dibujando se guarda solo en tu propio navegador (ver §15) hasta que la exportas como archivo GPX, que se guarda en tu dispositivo y no se envía a ninguna parte, o inicias sesión y la guardas, con lo que pasa a estar con tus rutas, como se describe en el §3.2.
Tu ubicación actual, en este sitio web, solo se pide cuando pulsas el botón de ubicación del mapa del planificador de rutas o «Añadir mi ubicación», y tu navegador te pregunta antes. La posición se usa en tu navegador para centrar el mapa; si la añades, se convierte en una parada como cualquier otra, enviada para calcular la ruta como se describe arriba. No la guardamos.
Las paradas a lo largo de la ruta, en este sitio web, solo se buscan con la sesión iniciada, mediante la misma función de búsqueda de POI que en la app, descrita arriba. La petición lleva la línea de la ruta, las categorías que elegiste y el id de tu cuenta. Con el id de tu cuenta, la función comprueba si tienes Plus y cuenta los usos gratuitos por cuenta, no por navegador (ver el párrafo siguiente).
Usos gratuitos. La búsqueda de POI, el tiempo, la búsqueda de lugares y organizar una salida en grupo son funciones de Plus que se pueden probar unas cuantas veces sin Plus. Para contar esos usos, la app envía un identificador aleatorio que crea en tu teléfono y guarda en el almacenamiento seguro del teléfono, junto con tu id de cliente de RevenueCat, para que nuestro servidor pueda preguntar a RevenueCat si tienes Plus (ver §10). Nuestro servidor guarda un pequeño registro por identificador y función: cuántos usos se han gastado y cuándo cambió eso por última vez. El identificador no está vinculado a tu cuenta, así que el registro no caduca automáticamente y no se puede asociar a ti cuando borras tu cuenta; no dice nada más que cuántas veces una instalación usó una función. En este sitio web, en cambio, el recuento se lleva con el id de tu cuenta, y ese registro se borra junto con tu cuenta.
Las respuestas de tiempo y geocodificación se guardan en caché en nuestro lado para que las consultas repetidas no vuelvan a preguntar: el tiempo durante 2 horas, la geocodificación alrededor de una semana. Las cachés se indexan por lugar, no por ciclista.
De dónde salen los POI. La búsqueda de POI se responde desde una tabla de nuestra propia base de datos (Supabase, ver §10) con unos 10 millones de puntos de interés, como agua potable, comida, aseos y tiendas de bicis, tomados de un extracto de toda la base de datos de OpenStreetMap. La actualizamos a mano de vez en cuando a partir de un extracto más reciente, no con un calendario fijo, así que puede que todavía falte un lugar añadido hace poco a OpenStreetMap. La zona de búsqueda (un punto y un radio, o la línea de una ruta) y las categorías no pasan de nuestro servidor, y las respuestas no se guardan en caché.
9. El registro de diagnóstico
La app mantiene un registro técnico para que los problemas de Bluetooth y de soporte se puedan comunicar.
- Está activado por defecto. Un ciclista que se topa con un problema tiene un registro que adjuntar sin haber tenido la previsión de activar antes la grabación. Desactívalo cuando quieras en Ajustes → Diagnóstico.
- Las contraseñas, los tokens y las claves de API se eliminan antes de escribir nada — un token bearer, una clave de API, un token de enlace mágico o un código OAuth que aparezca en cualquier parte del registro se convierte en un marcador de una sola dirección, no en la credencial en sí.
- Se queda en el teléfono hasta que lo adjuntas a una solicitud de soporte. Dos archivos rotatorios en el almacenamiento propio de la app; nada sale del teléfono antes de eso. No hay paso de redactar un correo — una solicitud de soporte se envía desde dentro de la propia app, como un mensaje en un hilo de soporte continuo (ver el siguiente punto). Adjuntar allí el registro lo sube a un bucket de almacenamiento privado, y esa copia subida se borra a los 180 días. Puedes limpiar la copia del teléfono, o desactivar el registro, en cualquier momento en Ajustes → Diagnóstico.
- Una solicitud de soporte es un hilo, no un correo suelto. Lo que escribas — con o sin registro adjunto — se guarda como parte de una conversación de soporte continua ligada a tu cuenta y a tu dirección de correo de inicio de sesión. La puede leer el personal de BikeOtter que responde solicitudes de soporte, y nadie más. La conversación en sí se conserva hasta que borres tu cuenta, momento en el que se borra con ella (ver la página de borrado); un registro subido sigue en cualquier caso su propio reloj de 180 días, independiente de la cuenta.
- Una captura de pantalla que adjuntas tú se guarda igual. El editor de soporte admite una imagen por mensaje, elegida por ti en la fototeca de tu teléfono: nunca se lee automáticamente ni se toma de tu galería en segundo plano. Lo que elegiste se sube a un bucket de almacenamiento privado aparte, lo pueden leer las personas de BikeOtter que responden al soporte y nadie más, y se borra a los 180 días, con el mismo reloj que un registro subido. Una captura muestra lo que hubiera en tu pantalla: míralo antes de adjuntarla; puedes quitarla en el editor hasta que envíes el mensaje.
- Los comentarios enviados sin cuenta son realmente anónimos. El acceso directo Enviar comentarios de la pantalla de inicio no te pide iniciar sesión. Lo que se guarda es lo que escribiste, la versión de la app y la plataforma, un identificador aleatorio generado en tu teléfono que existe solo para que podamos limitar los abusos, y — solo si decides escribirla — una dirección de correo para que podamos responderte. Si dejas ese campo en blanco no tenemos forma de relacionar el mensaje contigo: ni con una cuenta, ni con un nombre, ni con un dispositivo que pudiéramos identificar. Lo puede leer el personal de BikeOtter y nadie más.
- La consecuencia honesta de ese anonimato: si no dejaste ninguna dirección, no podemos identificar un comentario como tuyo, lo que significa que tampoco podemos borrarlo si nos lo pides — no hay nada con lo que cotejarte. Si quieres tener esa opción, deja una dirección o usa en su lugar la conversación de soporte, que está ligada a tu cuenta y se va cuando se va la cuenta.
- Qué contiene: versión y compilación de la app, modelo de teléfono, versión del sistema operativo, idioma y zona horaria, más una traza técnica de las conexiones de dispositivos y los eventos de la app. Los tokens de compartición en directo se truncan antes de escribirse. Puede contener coordenadas de posición — al menos una función de dispositivo registra la latitud y longitud del ciclista — más coordenadas de rutas, lugares guardados y números de serie de dispositivos. Eso no se censura, así que trata un registro de diagnóstico como datos sobre ti, y envíaselo solo a alguien de quien te fíes.
10. Terceros que usamos
La lista completa de servicios externos que contactan la app, el backend y este sitio. No hay otros, y en particular no hay ningún servicio de analítica, atribución, publicidad o informes de fallos en ninguna parte del producto.
| Servicio | Para qué se usa | Qué recibe |
|---|---|---|
| Supabase | Base de datos, inicio de sesión, funciones de servidor y el canal en tiempo real detrás del seguimiento en directo y de la sincronización de rutas | Todo lo descrito en §3–§8 que llega a guardarse, más los metadatos de conexión que ve cualquier servidor. Alojado en la UE — el proyecto corre en la región West EU (Ireland) de Supabase, así que estos datos se guardan dentro del EEE. |
| Cloudflare | Alojamiento de bikeotter.app y de las páginas de
visualización; el Worker que envía los correos de aviso de salida; el servidor de mapas
y el proxy de rutas del planificador de rutas de este sitio en
map.bikeotter.app | Las peticiones a este sitio y al punto de envío de correo, incluida la dirección IP, como parte de servirlos y protegerlos. Para el planificador de rutas, también los puntos que colocas y el perfil que eliges (ver §8). Los registros de peticiones del Worker se conservan según los valores por defecto de Cloudflare. |
| Open-Meteo | Previsiones del tiempo | Coordenadas y horas, enviadas por nuestro servidor, no por tu teléfono. |
Photon (photon.komoot.io) y Nominatim
(nominatim.openstreetmap.org) | Convertir nombres de lugares en coordenadas y viceversa | El término de búsqueda o las coordenadas, enviados por nuestro servidor. |
BRouter (brouter.de) | Calcular una ruta entre tus puntos de paso | Las coordenadas de tus puntos de paso y el perfil elegido — enviados directamente por tu teléfono, así que ve tu dirección IP. Desde el planificador de rutas de este sitio web los envía en cambio nuestro proxy de rutas, así que ahí BRouter no ve tu dirección IP. |
| Servidor de teselas de OpenStreetMap | Imágenes de mapa en la app y en la página de visualización | Qué teselas de mapa estás mirando — solicitadas directamente, así que ve tu dirección IP. |
| Strava | Importación opcional de rutas/actividades y subida de salidas | Ver §7. Estados Unidos. |
| RevenueCat (RevenueCat, Inc.) | Compras de Plus y comprobar si tienes Plus | Desde la app, directamente y en cada arranque: tu id de cliente de RevenueCat (un id aleatorio hasta que inicias sesión, después el id de tu cuenta), las compras y recibos del App Store o de Google Play, y los datos habituales de la app y del dispositivo, como la plataforma y las versiones del sistema operativo y de la app. Se pide directamente, así que ve tu dirección IP. Desde nuestro servidor, cuando una función necesita saber si tienes Plus: ese id de cliente (desde este sitio web, el id de tu cuenta). Guardamos la respuesta, sí o no, con la hora en que preguntamos, y volvemos a preguntar pasados 10 minutos. Estados Unidos. |
| Shorebird | Entrega por el aire de correcciones de código a la app instalada | Una comprobación de actualización al arrancar. Ver §10.1 — no es opcional. |
| YouTube (Google Ireland Limited) | Reproducir los dos vídeos de la página de inicio de este sitio — y solo cuando pulsas reproducir | Tu dirección IP, la página en la que pulsaste reproducir y los datos habituales del navegador — solicitado directamente por tu navegador a youtube-nocookie.com, así que Google ve tu dirección IP. Ver §15. |
Las tiendas de aplicaciones van aparte: si instalas BikeOtter desde el App Store de Apple o Google Play, los acuerdos propios de esa tienda sobre cuenta, compras e informes de fallos se aplican entre tú y ellos, y quedan fuera de nuestro control.
10.1 Shorebird, y por qué contacta con un servidor sin preguntar
BikeOtter se publica a través de Shorebird, que nos permite entregar una corrección del código Dart de la app por el aire, entre versiones de tienda. Es el mecanismo detrás de que llegue un parche sin una actualización de la tienda.
La parte que debes saber: la app comprueba al arrancar si hay un parche, automáticamente, y no hay ningún ajuste para desactivarlo. Nuestra configuración no desactiva la comprobación automática, y la app no ofrece forma de excluirse — la única manera de pararla es no ejecutar la app. Preferimos decirlo claramente antes que enterrarlo.
No operamos los servidores de Shorebird y no podemos observar qué envía su actualizador, porque el actualizador está integrado en el entorno de ejecución de la app y no en código que escribamos nosotros. Lo que una comprobación así implica necesariamente, sin embargo, no es cuestión de opinión: para poder ser respondida debe identificar qué app pregunta (nuestro id de app de Shorebird, que no es secreto y es el mismo en todas las instalaciones) y qué versión y nivel de parche ya está instalado, y — como cualquier petición de red — llega a los servidores de Shorebird desde tu dirección IP. Asume que Shorebird puede ver al menos eso, y que puede registrarlo como cualquier servidor registra las peticiones.
Dos cosas que no pudimos establecer y que no vamos a adivinar: el contenido exacto de esa petición más allá de lo anterior, y el país donde están sus servidores. Si necesitas cualquiera de las dos antes de instalar, pregúntanos y conseguiremos la respuesta de la propia Shorebird por escrito en vez de especular aquí.
Lo que sí podemos descartar: la comprobación no está ligada a tu cuenta, y BikeOtter funciona sin iniciar sesión, así que la petición no lleva ninguna identidad que le hayamos dado. Un parche cambia el código de la app — nunca tus datos, tus salidas ni tus rutas.
11. Permisos del teléfono
La app pide lo mínimo posible, y cada permiso se usa exactamente para una cosa.
| Permiso | Para qué |
|---|---|
| Bluetooth | Para encontrar y comunicarse con tu ciclocomputador y tus sensores. En Android el permiso de escaneo está declarado como que nunca se usa para derivar la ubicación. |
| Ubicación | Ubicación aproximada en Android, «mientras usas la app» en iOS: para buscar POI cerca de ti y para iniciar un recálculo de ruta desde donde estás. La ubicación en segundo plano no se pide en ninguna de las dos plataformas. Durante una salida, la posición que se comparte viene del ciclocomputador por Bluetooth. |
| Micrófono y reconocimiento de voz | Comandos de voz. El reconocimiento se ejecuta en el dispositivo; el audio no se envía a ninguna parte. |
| Notificaciones | Para mostrar la notificación permanente de la salida y los avisos. |
| Acceso a notificaciones (solo Android) | Opcional. Permite a la app leer las notificaciones entrantes del teléfono para mostrarlas en tu ciclocomputador. Lo concedes tú en los ajustes del sistema, y su contenido nunca se guarda ni se sube. |
| Ejecutarse al arrancar / exención de batería (solo Android) | Para que una salida interrumpida pueda reanudarse tras un reinicio y el sistema no la mate a mitad de salida. |
La app no pide fotos, cámara, la lista de contactos del teléfono, el calendario ni ningún identificador de publicidad, y no usa el permiso de rastreo de Apple porque no rastrea.
12. Conservación de un vistazo
| Datos | Se conservan |
|---|---|
| Puntos de posición en directo | 7 días después de que la salida termine o caduque — se borran con su sesión |
| Registro de sesión en directo | 7 días después de terminar o caducar |
| Registro de salida en grupo | 7 días después de terminar o caducar |
| Tiempos por vuelta de una carrera | 90 días después de su último cambio — se conservan aunque la salida en grupo ya se haya borrado |
| Invitaciones a carreras (a quién invitaste) | Se borran con la salida en grupo de la carrera — 7 días después de terminar o caducar |
| Mensajes de los espectadores | Se borran con su sesión — es decir, dentro de los mismos 7 días |
| Caché del tiempo | 2 horas |
| Caché de geocodificación | 8 días |
| Caché de rutas del proxy del planificador de rutas del sitio web | Hasta 24 horas |
| Caché de respuestas de Strava | 48 horas |
| Contactos y sus registros de aviso | Hasta que borres el contacto o tu cuenta — sin caducidad automática |
| Conexión con Strava | Hasta que desconectes o borres tu cuenta |
| Contador de usos gratuitos (ver §8) | En la app: se lleva con un identificador de tu teléfono, no con tu cuenta, sin caducidad automática. En este sitio web: hasta que borres tu cuenta |
| Nuestro registro de si tienes Plus (de RevenueCat) | Se vuelve a comprobar pasados 10 minutos cuando hace falta. Un registro con el id de tu cuenta se borra con tu cuenta; uno con el id aleatorio que se usa antes de iniciar sesión no caduca automáticamente |
| Rutas sincronizadas (sincronización de rutas, o guardadas en este sitio web) y cuándo sincronizaste por última vez | Hasta que las borres o borres tu cuenta, o 24 meses después de tu última sincronización, lo que ocurra primero |
| Marca que deja una ruta que borraste de la nube | 180 días, para que tus otros dispositivos también borren su copia |
| Copia de seguridad de ajustes (Plus, solo si la activaste) | Hasta que desactives la copia de seguridad — lo que la borra de inmediato — o borres tu cuenta; sin caducidad automática |
| Registro de cuenta | Hasta que nos pidas borrarlo — ver cómo borrar tu cuenta |
| Conversación de soporte (hilo y mensajes) | Hasta que borres tu cuenta — ver cómo borrar tu cuenta |
| Dirección de contacto de la lista de deseos (solo si aceptaste) | Hasta que borres tu cuenta |
| Comentarios anónimos (acceso directo de la pantalla de inicio) | Se conservan hasta que los hayamos atendido — sin caducidad automática. Si no dejaste una dirección de respuesta no se pueden identificar como tuyos, así que no se pueden borrar a petición |
| Registro de diagnóstico | En tu teléfono por defecto, rotado automáticamente, borrable por ti en cualquier momento; si se adjunta a una solicitud de soporte, la copia subida se conserva 180 días con su propio reloj, independiente de la cuenta |
| Captura adjunta a un mensaje de soporte | 180 días, con su propio reloj, independiente de la cuenta |
Los registros de servidor y de plataforma que mantienen nuestros proveedores de alojamiento (Supabase, Cloudflare) siguen los valores de conservación por defecto de esos proveedores y pueden contener brevemente direcciones IP como parte inevitable de servir una petición.
13. Bases jurídicas
- Art. 6(1)(b) GDPR — ejecutar lo que pediste. Iniciarte sesión, mantener una compartición en directo que iniciaste, enviar los correos de aviso que solicitaste, subir una salida a una cuenta de Strava que conectaste, calcular una ruta que dibujaste, guardar las rutas que sincronizaste o guardaste en este sitio web, comprobar si tienes Plus y contar tus usos gratuitos, y enviar una solicitud de soporte con el registro de diagnóstico adjunto.
- Art. 9(2)(a) GDPR — consentimiento explícito para datos de salud. La frecuencia cardiaca y la potencia son datos de salud. Solo se suben cuando activas «compartir frecuencia cardiaca y potencia»; el interruptor está desactivado por defecto y desactivarlo detiene la subida. La cadencia se sube bajo ese mismo interruptor. No afirmamos que la cadencia sea un dato de salud en el sentido del Art. 9 — es una lectura de un sensor de biela, no de tu cuerpo — pero pertenece a la misma familia y recibe la misma protección, no una más débil.
- Art. 6(1)(a) y Art. 9(2)(a) GDPR — consentimiento explícito, para la copia de seguridad de ajustes. Una copia de tus ajustes solo se sube después de que, como usuario de Plus, actives la copia de seguridad de ajustes; está desactivada por defecto. Como la copia incluye tu tipo de piel y tu peso corporal, que pueden leerse como datos de salud, tratamos su activación como consentimiento explícito en el sentido del Art. 9. Desactivarla retira ese consentimiento y borra la copia. Ver §3.1.
- Art. 6(1)(a) GDPR (y, para lo que el reproductor guarde en tu navegador, § 25(1) TDDDG) — consentimiento, para los vídeos de la página de inicio. Pulsar reproducir en un vídeo es la petición de cargar el reproductor de YouTube, y antes no se carga nada de YouTube. Lo retiras simplemente no volviendo a pulsar reproducir: salir de la página o recargarla elimina el reproductor.
- § 25(2) No. 2 TDDDG — almacenamiento estrictamente necesario en tu navegador, para las pocas entradas que este sitio guarda en el almacenamiento local de tu navegador: el idioma y el tema que elegiste, lo que deja atrás la demo, un inicio de sesión en la lista de deseos o en el planificador de rutas (con su código de un solo uso para Strava) y la ruta que estás dibujando en el planificador de rutas, con cuál de tus rutas guardadas es. El §15 enumera cada una. Para estas no hace falta consentimiento, y no se pide.
- Art. 6(1)(f) GDPR — interés legítimo en mantener el servicio funcionando y sin abusos: límites de frecuencia, salvaguardas de un-correo-por-contacto-y-salida, gestión de rebotes, el registro mínimo de peticiones que hacen nuestros proveedores de alojamiento, y el registro de diagnóstico en el dispositivo activado por defecto para que una solicitud de soporte pueda incluir uno — puedes desactivarlo en Ajustes → Diagnóstico en cualquier momento.
Retirar el consentimiento es siempre posible y surte efecto de ahí en adelante: termina la compartición, desactiva el interruptor de frecuencia cardiaca/potencia, desactiva el registro, desconecta Strava, borra el contacto, desactiva la copia de seguridad de ajustes, borra una ruta sincronizada o consérvala solo en tu teléfono.
14. Tus derechos
En virtud del GDPR tienes derecho a acceder a tus datos (Art. 15), a que se corrijan (Art. 16) o se supriman (Art. 17), a restringir el tratamiento (Art. 18), a recibirlos en un formato portable (Art. 20) y a oponerte al tratamiento basado en intereses legítimos (Art. 21). Cuando el tratamiento se base en el consentimiento, puedes retirarlo en cualquier momento.
Escribe a support@bikeotter.app y nos ocuparemos. Buena parte también puedes hacerla tú en la app: terminar una compartición, borrar un contacto, desconectar Strava, limpiar el registro de diagnóstico, desactivar la copia de seguridad de ajustes (lo que borra la copia en nuestros servidores), borrar una ruta sincronizada o conservarla solo en tu teléfono.
La supresión (Art. 17) tiene su propia página, porque merece el detalle: cómo borrar tu cuenta — los pasos, qué se borra con ella, qué se conserva después y durante cuánto tiempo.
Si crees que nos hemos equivocado en esto, puedes reclamar ante una autoridad de control de protección de datos — en la UE, la del lugar donde vives, donde trabajas o donde se produjo la supuesta infracción (Art. 77 GDPR).
15. Este sitio web
bikeotter.app es un conjunto de páginas estáticas alojadas en Cloudflare. No pone ninguna cookie y no ejecuta ninguna analítica. Sí guarda unas pocas entradas pequeñas en el almacenamiento local de tu navegador, cada una escrita por algo que elegiste o por una función que usaste. Todas menos dos nunca salen de tu navegador: las lee la propia página y nada más — ni nosotros, ni nadie. Las dos que sí salen existen solo si inicias sesión, en la página de la lista de deseos o en el planificador de rutas: se envían a nuestro backend, porque así es como funciona iniciar sesión. La lista completa:
| Entrada (clave) | Qué contiene, y por qué | ¿Se envía a algún sitio? |
|---|---|---|
bikeotter:lang | Un código de idioma, por ejemplo de. Se escribe cuando eliges un idioma al pie de una página — o en tu primera visita a una página en inglés, si tu navegador pide alemán, español, francés, italiano o polaco: el sitio te cambia entonces a ese idioma una vez, y recuerda que lo ha hecho, para no volver a cambiarte nunca en contra de una elección tuya. | No |
bikeotter-site-theme | light o dark. Se escribe solo cuando pulsas el botón claro/oscuro de la cabecera, para que la siguiente página se abra con el tema que elegiste. Hasta que lo pulses no se guarda nada, y las páginas siguen el ajuste de tu sistema. | No |
FlutterSecureStorage y FlutterSecureStorage.plus_device_key | Solo desde la demo en /es/demo/, y solo cuando inicias en ella una salida en grupo: un identificador aleatorio, cifrado con una clave guardada a su lado. La demo es la app real, que crea este identificador cuando inicias una salida en grupo; en la demo esa salida se simula dentro de tu navegador, así que el identificador no se usa para nada y simplemente se queda ahí. | No |
sb-ccskijubebzhwpknjkpl-auth-token | Solo si inicias sesión en la página de la lista de deseos o en el planificador de rutas: tu sesión iniciada — un token de acceso, un token de refresco, y el id de usuario y la dirección de correo de tu cuenta — para que sigas con la sesión iniciada cuando vuelvas. | Sí, a nuestro backend (Supabase, ver §10), con cada petición que hacen la página de la lista de deseos o el planificador de rutas mientras tienes la sesión iniciada — así es como saben que un voto, una sugerencia o una ruta guardada es tuya |
bikeotter.strava.web.pending | Solo mientras inicias sesión en el planificador de rutas con Strava: un código aleatorio de un solo uso, creado en tu navegador cuando pulsas «Continuar con Strava» y guardado durante los momentos que pasas en la página de Strava. Demuestra a nuestro backend que el inicio de sesión que vuelve de Strava es el que empezó este navegador. Se guarda en el almacenamiento de sesión de esa pestaña, que tu navegador vacía al cerrarla, y se borra en cuanto termina el inicio de sesión. | Sí, una vez, a nuestro backend (Supabase, ver §10), para terminar ese inicio de sesión. Al empezar solo se envía una huella del código (un hash SHA-256) |
bikeotter.planner.cloud.v1 | Solo si inicias sesión en el planificador de rutas: el id de usuario de tu cuenta, el id y el número de revisión de la ruta guardada que tienes abierta (vacíos si la ruta aún no está guardada) y si tiene cambios que no has guardado. Sirve para que al recargar se vuelva a abrir la misma ruta guardada y para que una ruta que dibujaste antes de iniciar sesión no se guarde dos veces. Se reescribe cuando abres, guardas o editas una ruta, y se borra cuando cierras la sesión en el planificador de rutas. | No. Al guardar una ruta se envían su id y su revisión a nuestro backend (ver §3.2), pero esta entrada en sí nunca sale de tu navegador |
bikeotter.planner.draft.v1 | Solo si usas el planificador de rutas en bikeotter.app/plan: la ruta que estás dibujando (sus paradas y sus nombres, el perfil, si vuelve al punto de partida y cuándo se guardó por última vez) o un archivo GPX que importaste, para que recargar la página o cerrar la pestaña no la pierda. Se sobrescribe mientras editas y se queda hasta que borres los datos de este sitio en tu navegador. | No. Los puntos se envían para calcular la ruta (ver §8), pero esta entrada en sí nunca sale de tu navegador |
bikeotter.planner.poiTypes.v1 | Solo si buscas paradas a lo largo de la ruta en el planificador de rutas: qué categorías tienes activadas (agua potable, comida, café, etc.), para que la siguiente búsqueda busque las mismas. Se reescribe cuando activas o desactivas una categoría y se queda hasta que borres los datos de este sitio en tu navegador. | No. Las categorías se envían con cada búsqueda (ver §8), pero esta entrada en sí nunca sale de tu navegador |
Para eliminarlas, borra los datos de este sitio en tu navegador — en la mayoría de los navegadores desde el icono a la izquierda de la barra de direcciones, o en los ajustes de cookies y datos de sitios. Una ventana privada empieza sin ninguna de ellas y las olvida al cerrarla. Si tu navegador bloquea los datos de sitios, las páginas siguen funcionando: siguen el idioma y el tema de tu sistema, y simplemente no pueden recordar una elección.
Por qué no se te pregunta antes. Guardar y leer estas entradas no requiere consentimiento según el § 25(2) No. 2 TDDDG, porque cada una es estrictamente necesaria para algo que le pediste a este sitio: páginas en tu idioma y con el tema que elegiste, la demo que abriste, la ruta que estás planificando y seguir con la sesión iniciada en la lista de deseos o en el planificador de rutas. La sesión iniciada es un dato personal, y para ella la base es el Art. 6(1)(b) GDPR (§13). Aquí no hay nada más que consentir, y por eso no se te pregunta. La única excepción es un vídeo de la página de inicio, descrito más abajo: pulsar su botón de reproducir es el consentimiento.
Todos los recursos que necesita una página de aquí se sirven desde este sitio. Las tipografías (Archivo y Geist Mono) las alojamos nosotros en vez de traerlas de un CDN de fuentes, precisamente para que leer una página no entregue tu dirección IP a un tercero. No hay gestor de etiquetas, ni widget de compartir, ni servicio de fuentes web, ni reproductor de vídeo hasta que pidas uno. La única parte que necesariamente ve tu petición es Cloudflare, que aloja las páginas — inevitable, porque algo tiene que servirlas.
Los vídeos de la página de inicio son la única excepción, y solo cuando pulsas reproducir. La página de inicio muestra dos vídeos de BikeOtter alojados en YouTube. Con la página solo se cargan una imagen de vista previa y un botón de reproducir, ambos servidos desde este sitio; no sale ninguna petición hacia YouTube ni Google hasta que pulsas reproducir. Al pulsarlo, la vista previa se sustituye por el reproductor de YouTube, cargado desde youtube-nocookie.com — el modo de privacidad mejorada de YouTube, operado por Google Ireland Limited, Gordon House, Barrow Street, Dublín 4, Irlanda. Desde ese momento tu navegador habla directamente con Google: Google recibe tu dirección IP, la dirección de la página y los datos habituales del navegador, y mientras el vídeo se reproduce el reproductor puede guardar identificadores en tu navegador y enviar a Google información sobre la reproducción, que Google puede tratar también en Estados Unidos (Google LLC está certificada en el Marco de Privacidad de Datos UE-EE. UU.). El modo de privacidad mejorada significa que YouTube no usa que veas un vídeo incrustado para personalizar lo que te muestra en otras partes de YouTube, pero no es anónimo. Nosotros no recibimos nada de todo esto. Se aplica la política de privacidad de Google: policies.google.com/privacy. Si no pulsas reproducir, no ocurre nada de esto. El enlace «Ver en YouTube» bajo cada vídeo lo abre en youtube.com, donde se aplican las condiciones habituales de YouTube.
El visor de seguimiento en directo en bikeotter.app/r/… y el visor de grupo en /g/… cargan además los datos de la salida compartida desde nuestro backend y las teselas de mapa desde OpenStreetMap. Abrir un enlace de visor deliberadamente no deja ninguna sesión en tu navegador: el token de acceso que usa se mantiene en memoria solo durante esa visita y no se persiste. Los espectadores se cuentan, no se identifican.
El planificador de rutas en bikeotter.app/plan carga además su mapa
desde nuestro propio servidor de mapas en map.bikeotter.app, y envía los puntos
que colocas a nuestro proxy de rutas y lo que escribes en su cuadro de búsqueda a nuestra
función de geocodificación, como se describe en el §8. Funciona sin cuenta y no
guarda nada en nuestros servidores, salvo que inicies sesión y guardes una ruta
(§3.2). Con la sesión iniciada, además carga tus rutas guardadas desde
nuestro backend y busca paradas a lo largo de la ruta mediante nuestra función de búsqueda
de POI (§8).
Los enlaces de visor están excluidos de los buscadores mediante robots.txt, y
cada uno lleva una instrucción noindex, de modo que una salida compartida no
debería aparecer en los resultados de búsqueda.
16. Menores
BikeOtter no está dirigida a menores y no está pensada para que la use nadie menor de 16 años. No recogemos datos de menores a sabiendas. Si crees que un menor ha usado la app con una cuenta, escríbenos y la borraremos.
17. Cambios
La app es joven y sigue cambiando. Si cambia lo que recoge, esta página cambia con ella, y la versión y la fecha de arriba se mueven. Los cambios importantes se señalarán en la app, no se colarán en silencio.
18. Contacto
Preguntas, solicitudes o una corrección a algo de esta página: support@bikeotter.app.
Ver también las condiciones de uso y el descargo de responsabilidad de seguridad y el aviso legal.