Legal
Política de privacidad
Última actualización: 15 de octubre de 2026
Esta Política de privacidad explica cómo trata Impulse tu información en sus dos productos: la app Impulse para iOS y Android y la extensión de navegador Impulse (el «widget», para Chrome). Impulse te ayuda a controlar tu tiempo de pantalla bloqueando apps y webs que distraen y añadiendo fricción al impulso de abrirlas.
Impulse funciona primero en tu dispositivo: el bloqueo y el tiempo de pantalla funcionan por completo en tu dispositivo y no necesitan cuenta. Algunas funciones sí se comunican con un conjunto pequeño y fijo de servicios externos, y esta política explica exactamente qué datos salen de tu dispositivo, adónde van y por qué.
Responsable del tratamiento: Pablo Granados, NIF 76659189M, Calle Profesor Sainz Cantero, 2, Granada (España), que opera como «Impulse» («nosotros»). Contacto: hello@impulsecontrolapp.com. En esta política usamos App para lo que solo hace la app móvil y para lo que solo hace la extensión; lo que no lleva etiqueta se aplica a las dos. Cómo puedes usar Impulse lo regulan los Términos de uso.
Índice
- 1. Datos guardados en tu dispositivo
- 2. Analítica (Mixpanel)
- 3. Cuenta y sincronización (Supabase)
- 4. Reportes, bloqueos y Términos
- 5. Emails de supervisión
- 6. Desbloqueo físico (NFC)
- 7. Generación de códigos QR
- 8. Nuestra web (instalar / desinstalar)
- 9. Permisos del navegador
- 10. Lo que NO recogemos
- 11. Encargados del tratamiento
- 12. Base legal
- 13. Conservación de los datos
- 14. Tus derechos y opciones
- 15. Seguridad
- 16. Privacidad de los menores
- 17. Cambios de esta política
- 18. Contacto y código abierto
1. Datos guardados en tu dispositivo
La mayor parte de lo que haces con Impulse se guarda solo en tu dispositivo y se usa únicamente para aplicar las reglas que configuras, enseñarte tus estadísticas y recordar tus ajustes.
App En iOS
La app usa los frameworks oficiales de Apple FamilyControls, DeviceActivity y ManagedSettings con autorización individual. Las apps y webs que eliges restringir se guardan como tokens opacos gestionados por el sistema, que nosotros no podemos leer y nunca se envían a ningún servidor: ni siquiera los nombres de las apps que bloqueas salen de tu dispositivo. Tus horarios, límites, preferencias, el PIN de bloqueo, tus rachas y el informe de Tiempo de uso se guardan en local (SwiftData, AsyncStorage y el llavero del sistema) y se borran al desinstalar la app.
En el navegador
La extensión guarda tus datos con chrome.storage.local (y chrome.storage.sync para el bloqueo con contraseña, que es opcional). Esto incluye:
- Reglas de bloqueo: los sitios/URL que bloqueas, horarios, niveles de dificultad (Fácil, Media, Difícil, Física) y nombres de las reglas.
- Controles de impulso y límites: límites de aperturas/tiempo/scroll por sitio y los ajustes de la cuenta atrás.
- Tiempo de pantalla: tiempo por sitio y recuentos de visitas/aperturas, medidos en local para las vistas de estadísticas y los mapas de calor.
- Preferencias: ajustes de Quick Focus, tema e idioma.
- Protección con contraseña (opcional): un hash SHA-256 con sal de tu contraseña (nunca el texto en claro).
- Emails de protector verificados, vínculos con tarjetas físicas y el estado del escape de emergencia se guardan en local para las funciones descritas más abajo.
- Un identificador aleatorio de instalación para agrupar los eventos de analítica (más abajo).
2. Analítica (Mixpanel, UE)
Los dos productos mandan analítica de uso del producto a Mixpanel, alojado en la Unión Europea (api-eu.mixpanel.com), para entender qué funciones se usan y mejorar Impulse.
App La app manda eventos de uso (qué pantallas abres y qué funciones usas, con recuentos y ajustes como la dificultad de una regla), ligados a un identificador de tu dispositivo que Apple o Google dan al desarrollador de la app. Los eventos nunca incluyen qué apps o webs bloqueas o usas, sus nombres o identificadores, ni cuánto tiempo pasas en ellas.
Los eventos de la extensión van ligados a un identificador aleatorio de instalación (un UUID generado en tu navegador), que por sí solo no está ligado a tu nombre ni a tu email.
- Nombres de eventos que describen interacciones (pasos del onboarding, crear una regla, activar Quick Focus, llegar a un límite, completar o fallar un desafío de desbloqueo, ver estadísticas, unirse a un squad).
- Propiedades técnicas estándar: versión de la app/extensión, una etiqueta genérica de navegador/sistema y marcas de tiempo.
- Recuentos agregados de perfil, como el número de controles/periodos de bloqueo/squads, si tienes la sesión iniciada, idioma y tema.
La analítica nunca incluye el contenido de tus bloqueos ni qué apps usas. Algunos eventos de la extensión incluyen una propiedad Domain / Site con la dirección del sitio donde actuó la extensión (por ejemplo, al llegar a un límite o enseñar un aviso); en unos pocos eventos puede incluir la ruta de la página, no solo el dominio. Algunos eventos también incluyen nombres que elegiste tú (el de un control o un squad). Al iniciar sesión o registrarte, el evento incluye solo el dominio de tu email (p. ej. gmail.com), no tu email completo. La analítica se rige por la política de privacidad de Mixpanel.
3. Cuenta y sincronización opcionales (Supabase, UE)
Las cuentas, la autenticación, la sincronización y los grupos compartidos los gestiona Supabase, alojado en la Unión Europea (eu-central-1). Ninguno de estos datos sale de tu dispositivo salvo que elijas usar estas funciones.
App Al abrir la app por primera vez se genera un identificador anónimo para guardar tu progreso. Solo se te pide crear una cuenta permanente (email y contraseña) si eliges crear un grupo o reto o unirte a uno.
La extensión ofrece una cuenta opcional para sincronizar entre dispositivos y hacer copia de tus estadísticas. El inicio de sesión usa tu email más un código de un solo uso (OTP) que envía Supabase (después puedes poner contraseña).
Cuando usas estas funciones, tratamos en Supabase:
- Cuenta y autenticación: email, contraseña cifrada, nombre visible opcional, plan y un identificador de usuario/dispositivo para sincronizar tu progreso.
- Sincronización de reglas y ajustes: tus periodos de bloqueo y controles de impulso, con las URL o dominios que configuraste y los nombres que les diste.
- Copia diaria de estadísticas: una vez al día la extensión sube las estadísticas agregadas por sitio del día anterior, tanto de los sitios configurados como de otros visitados («sin controlar»): dominio, tiempo, visitas, bloqueos activados, desafíos completados o fallados, duración de las sesiones y desglose por horas.
- Grupos / squads: apodo y rol en el grupo, rachas y estado de cumplimiento, un estado de verificación (✅/⚠️), las reglas del grupo que creas (nombres de apps o sitios que escribes a mano) y un registro de incumplimientos con fecha para calcular rachas y rankings. Nunca compartimos tu lista de apps bloqueadas, solo tu estado de verificación.
App Retos públicos. Si te unes a un reto público, cualquiera que lo abra en la app, tenga cuenta o no, ve tu nombre en el ranking, tu racha, el porcentaje de días que has cumplido en los últimos 30 días y si las reglas del reto están configuradas en tu móvil. Nunca ve qué apps usas ni cuánto tiempo. Si no quieres que te reconozcan, elige un nombre que no te identifique. En un reto privado, esto solo lo ven sus miembros.
4. Reportes, bloqueos y Términos de uso
App Los retos públicos se moderan como describen los Términos de uso. Para que eso funcione, tratamos:
- Reportes. Si reportas un reto, guardamos el reto, el motivo, los detalles que añadas, la fecha y tu identificador de usuario. Nuestro equipo recibe un email con el reto, el motivo y cuántas personas lo han reportado, nunca quién lo reportó. El reto se te oculta al momento y, cuando lo reportan tres personas distintas, a todo el mundo.
- Bloqueos. Si bloqueas a quien creó un reto, guardamos quién bloquea a quién, el reto donde pasó y la fecha, para que sus retos y su nombre dejen de aparecerte. No se le avisa.
- Filtro de palabras. El nombre y la descripción de un reto y el nombre en el ranking se comparan al guardarlos con una lista de palabras ofensivas; si coinciden, no se guardan.
- Términos de uso. Cuando los aceptas, guardamos la versión y la fecha en tu cuenta.
- Límite de códigos. Para evitar abusos, contamos los emails con códigos que pide cada cuenta y que recibe cada dirección: tu identificador de usuario, un resumen irreversible (hash) de la dirección y la hora. Se guardan 2 días.
5. Emails de supervisión y verificación
Para la dificultad «Difícil» y el modo de Supervisión, Impulse puede implicar a una persona supervisora o de confianza («protector»), identificada por un email. Antes de guardar un email como protector, su dueño tiene que demostrar que controla ese buzón introduciendo un código que le enviamos.
- Los códigos de verificación y desbloqueo los gestiona una Edge Function de Supabase (
supervisor-code). El servidor genera el código, guarda solo una versión con hash, lo envía por email y aplica límites (caduca en unos 5 minutos, máximo 3 intentos, un solo uso). La extensión nunca recibe el código: solo reenvía lo que tú escribes. - App Emails que enviamos. Los emails salen a través de Resend: el código para crear una cuenta o iniciar sesión, los códigos para apagar una regla protegida (a la dirección que elijas) y los avisos relacionados. Los códigos se crean y se comprueban en nuestros servidores, caducan a los 5 minutos y solo valen una vez. Las direcciones que indicas para recibirlos se guardan con la petición del código y con tu regla.
- App Si creas un reto con una regla Difícil, el email que indicas para recibir sus códigos llega al móvil de cada persona que se une al reto, porque su móvil pide que el código se mande ahí. No se muestra antes de unirse.
- Escape de emergencia (72 h): las reglas en Difícil incluyen un desbloqueo de emergencia de un solo uso que se aplica a las 72 horas (rebaja la regla a Fácil). Cuando lo pides, avisamos por email al protector o protectores configurados; eso envía su dirección de email a nuestro backend.
Si solo usas la dificultad «Fácil» o «Media» y no usas la Supervisión, esta función no envía ningún dato de email.
6. Desbloqueo físico (NFC)
La dificultad «Física» te permite exigir el toque de una tarjeta o etiqueta NFC física para desbloquear una regla. Necesita cuenta.
- App La tarjeta NFC se vincula y se escanea con la app móvil, que hace la lectura NFC en tu teléfono.
- La extensión no lee hardware NFC y no pide ningún permiso NFC. Solo comprueba el estado de tu cuenta, lista tus tarjetas vinculadas (devuelve las etiquetas que les pusiste y una forma enmascarada de tu email) y pide o verifica un código corto de desbloqueo que se genera al escanear la tarjeta en tu teléfono. Lo gestiona una Edge Function de Supabase (
physical-unlock); qué tarjeta desbloquea qué regla se guarda solo en local y no se sincroniza.
Si nunca usas la dificultad «Física», nada de esto se envía.
7. Generación de códigos QR
Al abrir la pantalla «consigue la app móvil», la extensión pinta un código QR cargando una imagen de api.qrserver.com, y le pasa solo el enlace público de la App Store como dato a codificar. No se envía ningún dato personal ni de navegación: solo esa URL estática y pública (más la IP y el user-agent inherentes a cualquier petición de imagen).
8. Nuestra web (instalar / desinstalar)
La extensión abre una página de impulsecontrolapp.com en dos situaciones: una página de bienvenida al instalar y una página al desinstalar (vía chrome.runtime.setUninstallURL) que puede ofrecer una encuesta. Como en cualquier visita a una web, esto expone tu IP y tu user-agent a nuestro servidor; estas navegaciones no llevan adjuntas reglas de bloqueo, estadísticas ni datos de tu cuenta.
Cualquier petición a un servicio externo expone por su propia naturaleza la IP de tu dispositivo y el user-agent del navegador a ese servicio, como cualquier petición web normal.
9. Permisos del navegador
La extensión declara los siguientes permisos de Chrome:
| Permiso | Para qué hace falta |
|---|---|
| storage | Guardar en local tus reglas, límites, estadísticas y preferencias (y el hash de la contraseña en el almacenamiento sincronizado). |
| tabs | Saber qué sitio está activo para aplicar las reglas de bloqueo, medir el tiempo de pantalla y ejecutar Quick Focus. |
| webNavigation | Detectar las navegaciones para evaluar las reglas al moverte entre páginas. |
| alarms | Programar tareas: reiniciar los contadores diarios, comprobar horarios y pausas, los temporizadores de Quick Focus, refrescar datos. |
| windows | Seguir la ventana con el foco para medir el tiempo de pantalla solo en la ventana que usas. |
| tabGroups | Leer y actualizar los grupos de pestañas de Chrome que usan las funciones de concentración y organización. |
| notifications | Mostrar notificaciones del sistema (p. ej. cuando termina una sesión de Quick Focus). |
| idle | Detectar cuándo tu dispositivo está inactivo o bloqueado para no contar ese tiempo como tiempo de pantalla. |
| <all_urls> (host) | Inyectar las pantallas de bloqueo y aviso y evaluar tus reglas en los sitios que configuras. El content script se ejecuta en las páginas, pero solo actúa en los sitios que coinciden con tus reglas. |
<all_urls> es amplio, la extensión lo usa solo para comprobar si una página coincide con tus reglas y para mostrar las pantallas de bloqueo. No lee el contenido de las páginas con otros fines, no intercepta formularios y no accede a tus contraseñas. La política de seguridad de contenido de la extensión limita las conexiones salientes exactamente a api-eu.mixpanel.com, *.supabase.co y api.qrserver.com. El uso que hace Impulse de la información recibida de las API de Google cumple la política de datos de usuario de la Chrome Web Store, incluidos los requisitos de uso limitado.10. Lo que NO recogemos
- No recogemos tu ubicación, contactos, fotos ni mensajes.
- No leemos el contenido de las páginas, lo que escribes en formularios ni contraseñas, y no registramos tu historial de navegación para publicidad.
- App No registramos qué apps usas; solo gestionamos las que eliges restringir, y esa selección se queda en tu dispositivo como tokens opacos.
- No vendemos tus datos ni los usamos para crear perfiles publicitarios.
11. Encargados del tratamiento
| Proveedor | Función |
|---|---|
| Apple | App Frameworks de Tiempo de uso y App Group. Los datos se tratan en el dispositivo. |
| Supabase (UE, eu-central-1) | Cuentas, autenticación, sincronización, grupos/squads y las funciones de supervisión y desbloqueo físico. |
| Mixpanel (UE) | Analítica de uso seudonimizada. |
| Resend | Envío de emails: códigos de inicio de sesión, códigos de verificación y avisos de moderación. |
| api.qrserver.com | Pintar el código QR de «consigue la app» a partir de una URL pública. |
Estos proveedores tratan los datos solo para prestar las funciones de arriba. No vendemos tus datos personales.
12. Base legal
Donde la ley aplicable (p. ej. el RGPD en la UE/EEE) lo exige, tratamos tus datos sobre la base de la ejecución de un contrato (prestarte el servicio que pides, como la cuenta, los retos y la sincronización), de nuestro interés legítimo en mantener Impulse seguro, moderar el contenido público y mejorarlo (incluida la analítica de uso), y de tu consentimiento cuando la ley lo exige. Puedes retirar el consentimiento en cualquier momento escribiéndonos.
13. Conservación de los datos
- Los datos locales se quedan en tu dispositivo hasta que los borras o desinstalas la app o la extensión. Algunos contadores locales se limpian solos tras una ventana deslizante (unos 14 días para ciertas métricas).
- Los datos de cuenta y sincronización en Supabase se conservan mientras exista tu cuenta. Cuando pides el borrado, eliminamos la copia del servidor.
- Los reportes se guardan mientras existan el reto o tu cuenta. Los bloqueos, hasta que desbloqueas a la persona o borras tu cuenta. El contador de códigos se guarda 2 días, aunque borres antes la cuenta. Al borrar tu cuenta se borran con ella tus reportes, tus bloqueos y la aceptación de los Términos.
- La analítica enviada a Mixpanel se conserva según las políticas de Mixpanel y la configuración de nuestra cuenta.
- Los códigos de verificación viven poco en el servidor (~5 minutos) y son de un solo uso.
Puedes pedir el borrado de tu cuenta o de datos concretos en cualquier momento en nuestra página de borrado de cuenta y datos.
14. Tus derechos y opciones
Según dónde vivas (p. ej. en la UE/EEE bajo el RGPD), puedes tener derecho a acceder a tus datos, corregirlos, exportarlos, borrarlos o portarlos, a oponerte a ciertos tratamientos o restringirlos, y a reclamar ante tu autoridad de protección de datos. Puedes:
- Ver tus datos: tus reglas, límites y estadísticas se ven en la propia app o extensión.
- Exportar tus datos como archivo JSON desde Ajustes.
- Borrar los datos locales desinstalando la app o la extensión.
- Borrar los datos de tu cuenta o datos concretos en nuestra página de borrado.
- Escribirnos a hello@impulsecontrolapp.com para ejercer cualquiera de estos derechos.
App Borrar tu cuenta. En la app: Ajustes › Cuenta › Borrar mi cuenta. Borra al momento tu cuenta y todo lo asociado en nuestros servidores: tu email, tus participaciones en retos, rachas y días fallados, tus reportes y bloqueos, tus tarjetas NFC y tu copia de ajustes. Los retos que creaste se eliminan para todas las personas que se unieron. Tus reglas personales están en tu móvil: bórralas en la app o desinstálala. También puedes pedírnoslo por email a hello@impulsecontrolapp.com (asunto «Solicitud de borrado de cuenta - Impulse», desde la dirección de tu cuenta). Los eventos de analítica se quedan en Mixpanel según su política de conservación; si nos lo pides, solicitamos que los borren.
15. Seguridad
- Transporte cifrado: toda la comunicación externa usa HTTPS/TLS.
- Almacenamiento local: tu contraseña, si la pones, se guarda solo como hash SHA-256 con sal, nunca en claro.
- Backend autenticado: las peticiones de cuenta, sincronización, grupos, supervisión y desbloqueo físico se autentican con tu sesión de Supabase y están protegidas por la seguridad a nivel de fila (RLS).
- Conexiones restringidas: la política de seguridad de contenido de la extensión limita las conexiones salientes a los servicios concretos listados aquí.
Ningún método de transmisión o almacenamiento es completamente seguro; no podemos garantizar una seguridad absoluta.
16. Privacidad de los menores
Impulse exige tener al menos 13 años. Para crear una cuenta hace falta además la edad que fija tu país para consentir el tratamiento de tus datos (14 años en España; hasta 16 en otros países de la Unión Europea) o el permiso de madre, padre o tutor legal, como explican los Términos de uso. No recogemos a sabiendas datos personales de menores por debajo de esas edades. Si crees que un menor nos ha dado datos, escríbenos y los borraremos.
17. Cambios de esta política
Podemos actualizar esta Política de privacidad para reflejar cambios de funcionalidad o requisitos legales. Los cambios importantes se reflejarán actualizando la fecha de «Última actualización» de arriba y, cuando proceda, a través de la app o la extensión.
18. Contacto y código abierto
Responsable del tratamiento: Pablo Granados, NIF 76659189M, Calle Profesor Sainz Cantero, 2, Granada (España). Para cualquier pregunta o petición sobre privacidad, escríbenos a hello@impulsecontrolapp.com.
El código fuente de la extensión se puede revisar en GitHub.
